in ktor-server/ktor-server-servlet/jvm/src/io/ktor/server/servlet/KtorServlet.kt [74:93]
override fun service(request: HttpServletRequest, response: HttpServletResponse) {
if (response.isCommitted) return
try {
if (request.isAsyncSupported) {
asyncService(request, response)
} else {
blockingService(request, response)
}
} catch (ioError: ChannelIOException) {
application.log.debug("I/O error", ioError)
} catch (cancelled: CancellationException) {
// could only happen in blockingService branch
application.log.debug("Request cancelled", cancelled)
response.sendErrorIfNotCommitted("Cancelled")
} catch (ex: Throwable) {
application.log.error("ServletApplicationEngine cannot service the request", ex)
response.sendErrorIfNotCommitted(ex.message ?: ex.toString())
}
}