Daniel Spiess [https://community.jboss.org/people/dspiess] created the 
discussion

"How do I resolve ClientAbortException thrown at the end of REST request?"

To view the discussion, visit: https://community.jboss.org/message/757892#757892

--------------------------------------------------------------
I'm struggling with a ClientAbortException getting thrown in the JBoss AS7 
logs.  The web application is a REST application that takes a post that 
contains a good amount of data (~600kb), stores it in the database, then 
returns the data with saved ids etc to the client as XML using JAX-RS.  Since 
it's server-to-server communication, this happens thousands of times.  In all 
cases the data is stored correctly, and the client receives the full response.  
Other than the JBoss server logs getting spammed with the following 
errors/warnings, the system works as designed.  Neither the web application or 
the client report any errors.

>From looking around on the internet, it looks like this error is often thrown 
>if the client abruptly kills the conversation by clicking cancel/back, etc.  
>Since this conversation is all automated and I'm not sure where it's getting 
>killed, I'm uncomfortable ignoring the error.

I'm returning XML to the user with the following call

// Marshal the created message transition run to xml and return it response = 
Response.status(201).entity(messageTransactionRunDomain).location(uriBuilder.build()).lastModified(new
 Date()).build();


The client is making the call using the following code:

ClientResponse response = 
webResource.type("application/vnd.neoninc.cds.processedmessage-v1.0+xml")
                                  .post(ClientResponse.class, 
processedMsgIngest);
     
    // Get the saved message transition run, so you can get the new id
              if (response.getStatus() == 201) {
        CDSRESTDataIngest.postValsTotalTime = 
CDSRESTDataIngest.postValsTotalTime + (endtime-temptime);
        return true;
              } else {
        log.error("POST failed and returned a status of " + 
response.getStatus());
        log.error(response.getEntity(String.class));
       }


Soon after starting the process, I start getting warnings in the JBoss logs

08:54:30,327 WARN  [org.jboss.resteasy.core.SynchronousDispatcher] 
(http--0.0.0.0-8080-1) Failed executing POST /messages/ingestmessage/: 
org.jboss.resteasy.plugins.providers.jaxb.JAXBMarshalException: 
javax.xml.bind.MarshalException
 - with linked exception:
[ClientAbortException:  java.net.SocketException: Connection reset]
    at 
org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.writeTo(AbstractJAXBProvider.java:148)
 [resteasy-jaxb-provider-2.3.2.Final.jar:]
    at 
org.jboss.resteasy.core.interception.MessageBodyWriterContextImpl.proceed(MessageBodyWriterContextImpl.java:117)
 [resteasy-jaxrs-2.3.2.Final.jar:]
    at 
org.jboss.resteasy.plugins.interceptors.encoding.GZIPEncodingInterceptor.write(GZIPEncodingInterceptor.java:100)
 [resteasy-jaxrs-2.3.2.Final.jar:]
    at 
org.jboss.resteasy.core.interception.MessageBodyWriterContextImpl.proceed(MessageBodyWriterContextImpl.java:123)
 [resteasy-jaxrs-2.3.2.Final.jar:]
    at org.jboss.resteasy.core.ServerResponse.writeTo(ServerResponse.java:250) 
[resteasy-jaxrs-2.3.2.Final.jar:]
    at 
org.jboss.resteasy.core.SynchronousDispatcher.writeJaxrsResponse(SynchronousDispatcher.java:585)
 [resteasy-jaxrs-2.3.2.Final.jar:]
    at 
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:506)
 [resteasy-jaxrs-2.3.2.Final.jar:]
    at 
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:119)
 [resteasy-jaxrs-2.3.2.Final.jar:]
    at 
org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)
 [resteasy-jaxrs-2.3.2.Final.jar:]
    at 
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
 [resteasy-jaxrs-2.3.2.Final.jar:]
    at 
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)
 [resteasy-jaxrs-2.3.2.Final.jar:]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 
[jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
    at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
 [jbossweb-7.0.13.Final.jar:]
    at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
 [jbossweb-7.0.13.Final.jar:]
    at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
 [jbossweb-7.0.13.Final.jar:]
    at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
 [jbossweb-7.0.13.Final.jar:]
    at 
org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
 [jboss-as-jpa-7.1.1.Final.jar:7.1.1.Final]
    at 
org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)
 [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
    at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) 
[jbossweb-7.0.13.Final.jar:]
    at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
[jbossweb-7.0.13.Final.jar:]
    at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 [jbossweb-7.0.13.Final.jar:]
    at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) 
[jbossweb-7.0.13.Final.jar:]
    at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) 
[jbossweb-7.0.13.Final.jar:]
    at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
 [jbossweb-7.0.13.Final.jar:]
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) 
[jbossweb-7.0.13.Final.jar:]
    at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_25]
Caused by: javax.xml.bind.MarshalException
 - with linked exception:
[ClientAbortException:  java.net.SocketException: Connection reset]
    at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:328)
    at 
com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:251)
    at 
javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:74)
 [jboss-jaxb-api_2.2_spec-1.0.3.Final.jar:1.0.3.Final]
    at 
org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.writeTo(AbstractJAXBProvider.java:144)
 [resteasy-jaxb-provider-2.3.2.Final.jar:]
    ... 25 more
Caused by: ClientAbortException:  java.net.SocketException: Connection reset
    at 
org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:403)
 [jbossweb-7.0.13.Final.jar:]
    at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:449) 
[jbossweb-7.0.13.Final.jar:]
    at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:349) 
[jbossweb-7.0.13.Final.jar:]
    at 
org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:426) 
[jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:415) 
[jbossweb-7.0.13.Final.jar:]
    at 
org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)
 [jbossweb-7.0.13.Final.jar:]
    at 
org.jboss.resteasy.util.CommitHeaderOutputStream.write(CommitHeaderOutputStream.java:52)
 [resteasy-jaxrs-2.3.2.Final.jar:]
    at 
com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(UTF8XmlOutput.java:411)
    at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:167)
    at 
com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeName(UTF8XmlOutput.java:241)
    at 
com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.endTag(UTF8XmlOutput.java:285)
    at 
com.sun.xml.bind.v2.runtime.output.NamespaceContextImpl$Element.endElement(NamespaceContextImpl.java:504)
    at 
com.sun.xml.bind.v2.runtime.XMLSerializer.endElement(XMLSerializer.java:318)
    at 
com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.serializeListBody(ArrayElementProperty.java:175)
    at 
com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:159)
    at 
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:356)
    at 
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:700)
    at 
com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:158)
    at 
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:356)
    at 
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:700)
    at 
com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.serializeItem(ArrayElementNodeProperty.java:69)
    at 
com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.serializeListBody(ArrayElementProperty.java:172)
    at 
com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:159)
    at 
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:356)
    at 
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:700)
    at 
com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:158)
    at 
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:356)
    at 
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(XMLSerializer.java:597)
    at 
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInfoImpl.java:338)
    at 
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:498)
    at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:323)
    ... 28 more
Caused by: java.net.SocketException: Connection reset
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:96) 
[rt.jar:1.6.0_25]
    at java.net.SocketOutputStream.write(SocketOutputStream.java:136) 
[rt.jar:1.6.0_25]
    at 
org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:724)
 [jbossweb-7.0.13.Final.jar:]
    at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:449) 
[jbossweb-7.0.13.Final.jar:]
    at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:349) 
[jbossweb-7.0.13.Final.jar:]
    at 
org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:748)
 [jbossweb-7.0.13.Final.jar:]
    at 
org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:126)
 [jbossweb-7.0.13.Final.jar:]
    at 
org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:559)
 [jbossweb-7.0.13.Final.jar:]
    at org.apache.coyote.Response.doWrite(Response.java:594) 
[jbossweb-7.0.13.Final.jar:]
    at 
org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:398)
 [jbossweb-7.0.13.Final.jar:]
    ... 58 more


And soon after I start getting the following errors

08:54:34,044 ERROR 
[org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/cdsWebApp].[org.neoninc.cds.RestApplication]]
 (http--0.0.0.0-8080-7) Servlet.service() for servlet 
org.neoninc.cds.RestApplication threw exception: java.lang.IllegalStateException
    at 
org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:408) 
[jbossweb-7.0.13.Final.jar:]
    at 
org.jboss.resteasy.plugins.server.servlet.HttpServletResponseWrapper.sendError(HttpServletResponseWrapper.java:71)
 [resteasy-jaxrs-2.3.2.Final.jar:]
    at 
org.jboss.resteasy.core.SynchronousDispatcher.handleFailure(SynchronousDispatcher.java:265)
 [resteasy-jaxrs-2.3.2.Final.jar:]
    at 
org.jboss.resteasy.core.SynchronousDispatcher.handleWriterException(SynchronousDispatcher.java:393)
 [resteasy-jaxrs-2.3.2.Final.jar:]
    at 
org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatcher.java:219)
 [resteasy-jaxrs-2.3.2.Final.jar:]
    at 
org.jboss.resteasy.core.SynchronousDispatcher.handleWriteResponseException(SynchronousDispatcher.java:203)
 [resteasy-jaxrs-2.3.2.Final.jar:]
    at 
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:510)
 [resteasy-jaxrs-2.3.2.Final.jar:]
    at 
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:119)
 [resteasy-jaxrs-2.3.2.Final.jar:]
    at 
org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)
 [resteasy-jaxrs-2.3.2.Final.jar:]
    at 
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
 [resteasy-jaxrs-2.3.2.Final.jar:]
    at 
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)
 [resteasy-jaxrs-2.3.2.Final.jar:]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 
[jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
    at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
 [jbossweb-7.0.13.Final.jar:]
    at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
 [jbossweb-7.0.13.Final.jar:]
    at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
 [jbossweb-7.0.13.Final.jar:]
    at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
 [jbossweb-7.0.13.Final.jar:]
    at 
org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
 [jboss-as-jpa-7.1.1.Final.jar:7.1.1.Final]
    at 
org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)
 [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
    at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) 
[jbossweb-7.0.13.Final.jar:]
    at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
[jbossweb-7.0.13.Final.jar:]
    at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 [jbossweb-7.0.13.Final.jar:]
    at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) 
[jbossweb-7.0.13.Final.jar:]
    at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) 
[jbossweb-7.0.13.Final.jar:]
    at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
 [jbossweb-7.0.13.Final.jar:]
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) 
[jbossweb-7.0.13.Final.jar:]
    at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_25]


I'm quickly running out of ideas, and I'm not sure how to fix this problem.  
Any ideas?
--------------------------------------------------------------

Reply to this message by going to Community
[https://community.jboss.org/message/757892#757892]

Start a new discussion in JBoss Web Services at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2044]

_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to