Skip to content

Commit

Permalink
Merge pull request http4s/http4s#4638 from http4s/upgrades-2021-03
Browse files Browse the repository at this point in the history
cats-effect-2.4.0 and scala-2.13.5
  • Loading branch information
rossabaker authored Mar 24, 2021
2 parents e3ecdef + 539790e commit 5250875
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ class AsyncHttp4sServlet[F[_]](
val response =
gate.get *>
Sync[F]
.suspend(serviceFn(request))
.defer(serviceFn(request))
.recoverWith(serviceErrorHandler(request))
val servletResponse = ctx.getResponse.asInstanceOf[HttpServletResponse]
F.race(timeout, response).flatMap(r => renderResponse(r.merge, servletResponse, bodyWriter))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class BlockingHttp4sServlet[F[_]](
override def service(
servletRequest: HttpServletRequest,
servletResponse: HttpServletResponse): Unit =
F.suspend {
F.defer {
val bodyWriter = servletIo.initWriter(servletResponse)

val render = toRequest(servletRequest).fold(
Expand All @@ -50,12 +50,12 @@ class BlockingHttp4sServlet[F[_]](
bodyWriter: BodyWriter[F]): F[Unit] =
// Note: We're catching silly user errors in the lift => flatten.
Sync[F]
.suspend(serviceFn(request))
.defer(serviceFn(request))
.recoverWith(serviceErrorHandler(request))
.flatMap(renderResponse(_, servletResponse, bodyWriter))

private def errorHandler(servletResponse: HttpServletResponse)(t: Throwable): F[Unit] =
F.suspend {
F.defer {
if (servletResponse.isCommitted) {
logger.error(t)("Error processing request after response was committed")
F.unit
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ import java.util
import javax.servlet.{DispatcherType, Filter}
import javax.servlet.http.HttpServlet
import org.http4s.server.ServerBuilder
import scala.annotation.nowarn

@nowarn("cat=unused")
abstract class ServletContainer[F[_]: Async] extends ServerBuilder[F] {
type Self <: ServletContainer[F]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import javax.servlet.{ServletContext, ServletRegistration}
import org.http4s.server.DefaultServiceErrorHandler
import org.http4s.server.defaults
import org.http4s.syntax.all._
import scala.annotation.nowarn

trait ServletContextSyntax {
implicit def ToServletContextOps(self: ServletContext): ServletContextOps =
Expand All @@ -41,6 +42,7 @@ final class ServletContextOps private[syntax] (val self: ServletContext) extends
mapping: String = "/*"): ServletRegistration.Dynamic =
mountHttpApp(name, service.orNotFound, mapping)

@nowarn("cat=unused")
def mountHttpApp[F[_]: ConcurrentEffect: ContextShift](
name: String,
service: HttpApp[F],
Expand Down

0 comments on commit 5250875

Please sign in to comment.