users@grizzly.java.net

RE: Exception

From: Hou, Chunxiao <chunxiao.hou_at_jpmorgan.com>
Date: Mon, 23 Sep 2013 22:29:38 +0000

Yeah, it is a web brower. I will take a further look if/how the client closes the connection before response is complete. This is very helpful info! Thanks again, Alexey.

From: Oleksiy Stashok [mailto:oleksiy.stashok_at_oracle.com]
Sent: Monday, September 23, 2013 6:21 PM
To: users_at_grizzly.java.net
Subject: Re: Exception

Hi David,

looks like your client (web browser?) closes the connection before reading the entire response from the server.

WBR,
Alexey.

On 23.09.13 15:01, Hou, Chunxiao wrote:
Hi there,

I saw this exception (see below) which happens randomly after I upgraded Jersey to 2.3. Can someone please help to take a look? Many Thanks.
I am running embedded Grizzly server -

Grizzly http Server:
ResourceConfig rc = new PackagesResourceConfig(RESOURCE_DIR);
rc.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, true);
httpServer = GrizzlyServerFactory.createHttpServer(BASE_URI, rc);

Resource:
public abstract class AbstractGetRiskResource {
                private static final Logger logger = LoggerFactory.getLogger(AbstractGetRiskResource.class);

                @GET
                public Response getMessage(@Context final UriInfo uriInfo, @Context HttpHeaders hh) {
                                String requestUri = uriInfo.getRequestUri().toString();
...
}

Thanks,
David

Sep 23, 2013 5:51:06 PM org.glassfish.jersey.server.ServerRuntime$Responder writeResponse
SEVERE: An I/O error has occurred while writing a response message entity to the container output stream.
org.glassfish.jersey.server.internal.process.MappableException: java.io.IOException: An established connection was aborted by the software in your host machine
       at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:96)
       at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:149)
       at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1139)
       at org.glassfish.jersey.server.ServerRuntime$Responder.writeResponse(ServerRuntime.java:562)
       at org.glassfish.jersey.server.ServerRuntime$Responder.processResponse(ServerRuntime.java:357)
       at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:347)
       at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:258)
       at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
       at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
       at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
       at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
       at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
       at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:318)
       at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:235)
       at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:983)
       at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:330)
       at org.glassfish.grizzly.http.server.HttpHandler$1.run(HttpHandler.java:209)
       at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
       at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
       at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: An established connection was aborted by the software in your host machine
       at sun.nio.ch.SocketDispatcher.write0(Native Method)
       at sun.nio.ch.SocketDispatcher.write(Unknown Source)
       at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source)
       at sun.nio.ch.IOUtil.write(Unknown Source)
       at sun.nio.ch.SocketChannelImpl.write(Unknown Source)
       at org.glassfish.grizzly.nio.transport.TCPNIOTransport.flushByteBuffer(TCPNIOTransport.java:1251)
       at org.glassfish.grizzly.nio.transport.TCPNIOAsyncQueueWriter.write0(TCPNIOAsyncQueueWriter.java:107)
       at org.glassfish.grizzly.nio.AbstractNIOAsyncQueueWriter.write(AbstractNIOAsyncQueueWriter.java:273)
       at org.glassfish.grizzly.nio.AbstractNIOAsyncQueueWriter.write(AbstractNIOAsyncQueueWriter.java:180)
       at org.glassfish.grizzly.nio.AbstractNIOAsyncQueueWriter.write(AbstractNIOAsyncQueueWriter.java:70)
       at org.glassfish.grizzly.nio.transport.TCPNIOTransportFilter.handleWrite(TCPNIOTransportFilter.java:128)
       at org.glassfish.grizzly.filterchain.TransportFilter.handleWrite(TransportFilter.java:191)
       at org.glassfish.grizzly.filterchain.ExecutorResolver$8.execute(ExecutorResolver.java:111)
       at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
       at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
       at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
       at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
       at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
       at org.glassfish.grizzly.filterchain.FilterChainContext.write(FilterChainContext.java:853)
       at org.glassfish.grizzly.filterchain.FilterChainContext.write(FilterChainContext.java:822)
       at org.glassfish.grizzly.http.io.OutputBuffer.flushBuffer(OutputBuffer.java:1011)
       at org.glassfish.grizzly.http.io.OutputBuffer.write(OutputBuffer.java:676)
       at org.glassfish.grizzly.http.server.NIOOutputStreamImpl.write(NIOOutputStreamImpl.java:83)
       at org.glassfish.jersey.message.internal.CommittingOutputStream.write(CommittingOutputStream.java:227)
       at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)
       at sun.nio.cs.StreamEncoder.implWrite(Unknown Source)
       at sun.nio.cs.StreamEncoder.write(Unknown Source)
       at java.io.OutputStreamWriter.write(Unknown Source)
       at java.io.BufferedWriter.flushBuffer(Unknown Source)
       at java.io.BufferedWriter.write(Unknown Source)
       at org.glassfish.jersey.message.internal.ReaderWriter.writeToAsString(ReaderWriter.java:191)
       at org.glassfish.jersey.message.internal.AbstractMessageReaderWriterProvider.writeToAsString(AbstractMessageReaderWriterProvider.java:129)
       at org.glassfish.jersey.message.internal.StringMessageProvider.writeTo(StringMessageProvider.java:99)
       at org.glassfish.jersey.message.internal.StringMessageProvider.writeTo(StringMessageProvider.java:59)
       at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.invokeWriteTo(WriterInterceptorExecutor.java:243)
       at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:230)
       at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:149)
       at org.glassfish.jersey.server.internal.JsonWithPaddingInterceptor.aroundWriteTo(JsonWithPaddingInterceptor.java:103)
       at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:149)
       at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:88)
       ... 19 more


This email is confidential and subject to important disclaimers and conditions including on offers for the purchase or sale of securities, accuracy and completeness of information, viruses, confidentiality, legal privilege, and legal entity disclaimers, available at http://www.jpmorgan.com/pages/disclosures/email.


This email is confidential and subject to important disclaimers and conditions including on offers for the purchase or sale of securities, accuracy and completeness of information, viruses, confidentiality, legal privilege, and legal entity disclaimers, available at http://www.jpmorgan.com/pages/disclosures/email.