@@ -28,10 +28,10 @@ object RestServlet {
2828 /**
2929 * Wraps an implementation of some REST API trait into a Java Servlet.
3030 *
31- * @param apiImpl implementation of some REST API trait
32- * @param handleTimeout maximum time the servlet will wait for results returned by REST API implementation
33- * @param maxPayloadSize maximum acceptable incoming payload size, in bytes;
34- * if exceeded, `413 Payload Too Large` response will be sent back
31+ * @param apiImpl implementation of some REST API trait
32+ * @param handleTimeout maximum time the servlet will wait for results returned by REST API implementation
33+ * @param maxPayloadSize maximum acceptable incoming payload size, in bytes;
34+ * if exceeded, `413 Payload Too Large` response will be sent back
3535 * @param defaultStreamingBatchSize default batch when streaming [[StreamedBody.JsonList ]]
3636 */
3737 @ explicitGenerics def apply [RestApi : RawRest .AsRawRpc : RestMetadata ](
@@ -59,7 +59,7 @@ class RestServlet(
5959 scheduler : Scheduler
6060) extends HttpServlet with LazyLogging {
6161
62- import RestServlet ._
62+ import RestServlet .*
6363
6464 override def service (request : HttpServletRequest , response : HttpServletResponse ): Unit = {
6565 val asyncContext = request.startAsync()
@@ -159,6 +159,9 @@ class RestServlet(
159159 })
160160 .map(_ => response.getOutputStream.write(" ]" .getBytes(jsonList.charset)))
161161 }
162+ }.onErrorHandle { e =>
163+ logger.error(e.getMessage)
164+ response.getOutputStream.close()
162165 }
163166
164167 private def writeResponseBody (response : HttpServletResponse , rr : AbstractRestResponse ): Task [Unit ] =
@@ -178,7 +181,7 @@ class RestServlet(
178181 private def writeResponse (response : HttpServletResponse , restResponse : RestResponse ): Unit = {
179182 setResponseHeaders(response, restResponse.code, restResponse.headers)
180183 restResponse.body match {
181- case HttpBody .Empty =>
184+ case HttpBody .Empty =>
182185 case neBody : HttpBody .NonEmpty => writeNonEmptyBody(response, neBody)
183186 }
184187 }
0 commit comments