]
Stuart Douglas resolved WFLY-3722.
----------------------------------
Fix Version/s: 9.0.0.Alpha1
Resolution: Done
IOException: Broken pipe thrown when using RichFaces with Atmosphere
2.2.0
--------------------------------------------------------------------------
Key: WFLY-3722
URL:
https://issues.jboss.org/browse/WFLY-3722
Project: WildFly
Issue Type: Bug
Components: Web (Undertow)
Reporter: Brian Leathem
Assignee: Stuart Douglas
Fix For: 9.0.0.Alpha1
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:
{code}
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
{code}
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&a...