Skip to content

Untrapped exception on client disconnect #203

@der

Description

@der

When clients (typically crawlers) disconnect before reading the response we get a ClientAbortException which is not properly trapped and emitted on logging without correct timestamps etc which causes issues for the logging system.

5317656:11-Nov-2025 06:19:55.523 SEVERE [http-nio-8080-exec-14] org.glassfish.jersey.server.ServerRuntime$Responder.writeResponse An I/O error has occurred while writing a response message entity to the container output stream.
5317876:	org.glassfish.jersey.server.internal.process.MappableException: org.apache.jena.atlas.RuntimeIOException: org.apache.catalina.connector.ClientAbortException: java.io.IOException: Connection reset by peer
5318081:		at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:92)
5318218:		at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
5318331:		at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1130)
5318431:		at org.glassfish.jersey.server.ServerRuntime$Responder.writeResponse(ServerRuntime.java:683)
5318526:		at org.glassfish.jersey.server.ServerRuntime$Responder.processResponse(ServerRuntime.java:424)
5318623:		at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:414)
5318712:		at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:312)
5318789:		at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
5318855:		at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
5318921:		at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
5318988:		at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
5319055:		at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
5319122:		at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
5319212:		at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:292)
5319291:		at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1139)
5319380:		at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:460)
5319458:		at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:386)
5319544:		at org.glassfish.jersey.servlet.ServletContainer.doFilter(ServletContainer.java:548)
5319631:		at org.glassfish.jersey.servlet.ServletContainer.doFilter(ServletContainer.java:489)
5319718:		at org.glassfish.jersey.servlet.ServletContainer.doFilter(ServletContainer.java:426)
5319805:		at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:181)
5319908:		at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:156)
5320003:		at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
5320093:		at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
5320176:		at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
5320263:		at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154)
5320358:		at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
5320448:		at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
5320531:		at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
5320618:		at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154)
5320713:		at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
5320803:		at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:458)
5320900:		at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:373)
5320991:		at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
5321077:		at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
5321161:		at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)
5321253:		at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:370)
5321354:		at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154)
5321449:		at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:181)
5321552:		at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:156)
5321647:		at com.epimorphics.appbase.webapi.CorsFilter.handleNonCORS(CorsFilter.java:433)
5321729:		at com.epimorphics.appbase.webapi.CorsFilter.doFilter(CorsFilter.java:177)
5321806:		at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:181)
5321909:		at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:156)
5322004:		at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
5322093:		at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
5322181:		at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
5322273:		at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
5322356:		at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
5322438:		at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
5322524:		at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
5322605:		at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:617)
5322685:		at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
5322771:		at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:932)
5322864:		at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1695)
5322953:		at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
5323038:		at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
5323133:		at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
5323228:		at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
5323316:		at java.lang.Thread.run(Thread.java:750)

Depending on the state of the dependency updates may need to fix this earlier that the full dependency updated version. Though will likely also entail appbase updates.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions