-
Bug
-
Resolution: Done
-
Major
-
None
-
None
While working on RF-13753 I upgraded the RichFaces Atmosphere dependency from 1.0.x to 2.2.0. All is functional after the upgrade except an IOException is thrown when I navigate away from a page using Atmosphere (via the RichFaces push component).
The stacktrace looks like:
16:35:27,083 ERROR [stderr] (default task-39) Exception in thread "default task-39" java.lang.RuntimeException: java.io.IOException: Broken pipe 16:35:27,083 ERROR [stderr] (default task-39) at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpServletResponseImpl.java:527) 16:35:27,083 ERROR [stderr] (default task-39) at io.undertow.servlet.spec.AsyncContextImpl$3.run(AsyncContextImpl.java:294) 16:35:27,083 ERROR [stderr] (default task-39) at io.undertow.servlet.spec.AsyncContextImpl$6.run(AsyncContextImpl.java:432) 16:35:27,083 ERROR [stderr] (default task-39) at io.undertow.servlet.spec.AsyncContextImpl$TaskDispatchRunnable.run(AsyncContextImpl.java:517) 16:35:27,084 ERROR [stderr] (default task-39) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 16:35:27,084 ERROR [stderr] (default task-39) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 16:35:27,084 ERROR [stderr] (default task-39) at java.lang.Thread.run(Thread.java:745) 16:35:27,084 ERROR [stderr] (default task-39) Caused by: java.io.IOException: Broken pipe 16:35:27,084 ERROR [stderr] (default task-39) at sun.nio.ch.FileDispatcherImpl.write0(Native Method) 16:35:27,084 ERROR [stderr] (default task-39) at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) 16:35:27,084 ERROR [stderr] (default task-39) at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) 16:35:27,085 ERROR [stderr] (default task-39) at sun.nio.ch.IOUtil.write(IOUtil.java:65) 16:35:27,085 ERROR [stderr] (default task-39) at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:487) 16:35:27,085 ERROR [stderr] (default task-39) at org.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:150) 16:35:27,085 ERROR [stderr] (default task-39) at io.undertow.server.protocol.http.HttpResponseConduit.write(HttpResponseConduit.java:531) 16:35:27,085 ERROR [stderr] (default task-39) at io.undertow.conduits.ChunkedStreamSinkConduit.flush(ChunkedStreamSinkConduit.java:256) 16:35:27,085 ERROR [stderr] (default task-39) at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkChannel.java:162) 16:35:27,085 ERROR [stderr] (default task-39) at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStreamSinkChannel.java:100) 16:35:27,085 ERROR [stderr] (default task-39) at org.xnio.channels.Channels.flushBlocking(Channels.java:63) 16:35:27,085 ERROR [stderr] (default task-39) at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputStreamImpl.java:625) 16:35:27,085 ERROR [stderr] (default task-39) at io.undertow.servlet.spec.HttpServletResponseImpl.closeStreamAndWriter(HttpServletResponseImpl.java:451) 16:35:27,086 ERROR [stderr] (default task-39) at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpServletResponseImpl.java:525) 16:35:27,086 ERROR [stderr] (default task-39) ... 6 more
There are no richfaces not atmosphere classes in the stacktrace, so I'm not sure how to narrow the problem down.
A reproducer can be found by building RichFaces from the branch:
https://github.com/richfaces/richfaces/tree/RF-13753-upgrade-atmosphere
and deploying the showcase. The push component sample triggers the error when you navigate away from the page:
http://localhost:8080/showcase/richfaces/component-sample.jsf?demo=push&sample=pushTopicsContext&skin=blueSky