Ryan Owens
2005-02-26 19:09:18 UTC
In doing a bit of user-error testing, I hit the browsers refresh button
multiple times so that requests would be interrupted.
Doing so logged out the user by throwing an ApplicationRuntimeException
and yielded the following error in the logs:
------------------------
Exception during post-request cleanup.
...
org.apache.catalina.connector.ClientAbortException
java.net.SocketException: Broken pipe
java.net.SocketOutputStream.socketWrite0(Native Method)
...
org.apache.tapestry.request.ResponseOutputStream.forceFlush(ResponseOutp
utStream.java:149)
org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:
928)
...
------------------------
The source code around AbstractEngine.java:928 is:
------------------------
cycle.cleanup();
// Closing the buffered output closes the underlying
stream as well.
if (output != null)
928-->> output.forceFlush();
cleanupAfterRequest(cycle);
------------------------
I can override service and call super.service and catch the
ClientAbortException, but that is a Tomcat specific thing that extends
java.io.IOException,
the service method throws IOException, so I don't see any good
non-tomcat-specific to handle it.
Anyone else hit this?
Thanks,
Ryan Owens
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-***@jakarta.apache.org
For additional commands, e-mail: tapestry-user-***@jakarta.apache.org
multiple times so that requests would be interrupted.
Doing so logged out the user by throwing an ApplicationRuntimeException
and yielded the following error in the logs:
------------------------
Exception during post-request cleanup.
...
org.apache.catalina.connector.ClientAbortException
java.net.SocketException: Broken pipe
java.net.SocketOutputStream.socketWrite0(Native Method)
...
org.apache.tapestry.request.ResponseOutputStream.forceFlush(ResponseOutp
utStream.java:149)
org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:
928)
...
------------------------
The source code around AbstractEngine.java:928 is:
------------------------
cycle.cleanup();
// Closing the buffered output closes the underlying
stream as well.
if (output != null)
928-->> output.forceFlush();
cleanupAfterRequest(cycle);
------------------------
I can override service and call super.service and catch the
ClientAbortException, but that is a Tomcat specific thing that extends
java.io.IOException,
the service method throws IOException, so I don't see any good
non-tomcat-specific to handle it.
Anyone else hit this?
Thanks,
Ryan Owens
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-***@jakarta.apache.org
For additional commands, e-mail: tapestry-user-***@jakarta.apache.org