You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Peter Royal <pr...@managingpartners.com> on 2001/12/20 18:11:31 UTC
Handling java.net.SocketException's
(If this has been addressed/fixed in HEAD, please let me know. I'm still
tracking the 2.0 branch here until I see some messages tossed about saying
that all the experimental stuff has been moved to scratchpad. I know that's
soon :)
In building upon Nicola's Notificable work here, I'm testing some components
that send me an email for all exceptions that pass through the
map:handle-errors pipeline.
For the CachingStreamPipeline.processReader(), java.net.SocketException's are
examined to see if the message contains "reset" and if so re-thrown as a
ConnectionResetException.
I'd like to implement similar behavior for all of the other pipeline's.
Problem is, it appears that it will be difficult to get at the underlying
exception in all cases.
For example, Xalan catches all exceptions and stuffs the message into a
RuntimeException. Thus is would be futile to just catch SocketException's in
the C2 code. (I've included a sample stacktrace at the bottom of the message)
I'm thinking that the only real solution (since I'm guessing that modifying
the Xalan code isn't that much of an option. Aside from the fact that the
run() method below is from the Java interface Runnable and i'm pretty sure
you can't throw extra exceptions in an implemented interface) would be to
catch RuntimeException's in Cocoon and examine the message to see if it
contains 'java.net.SocketException' and 'reset', and if so re-throw as a
ConnectionResetException.
I just wanted to get a feel from the group to see if this would be the
recommended way to go before sending a patch. Thanks :)
-peter
Original exception : java.lang.RuntimeException: java.net.SocketException:
Connection reset by peer: socket write error
at
org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3174)
at
org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerH
andlerImpl.java:433)
at
org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:48)
at
org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:48)
at
org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:48)
at
org.apache.cocoon.components.sax.XMLByteStreamInterpreter.parse(XMLByteStrea
mInterpreter.java:69)
at
org.apache.cocoon.components.sax.XMLByteStreamInterpreter.deserialize(XMLByt
eStreamInterpreter.java:59)
at
org.apache.cocoon.components.pipeline.CachingEventPipeline.process(CachingEv
entPipeline.java:178)
at
org.apache.cocoon.components.pipeline.CachingStreamPipeline.process(CachingS
treamPipeline.java:359)
at
org.apache.cocoon.www.sitemap_xmap.wildcardMatchN40022A(sitemap_xmap.java:41
91)
at org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java:1878)
at org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java:1773)
at org.apache.cocoon.sitemap.Handler.process(Handler.java:163)
at org.apache.cocoon.sitemap.Manager.invoke(Manager.java:114)
at org.apache.cocoon.Cocoon.process(Cocoon.java:514)
at
org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:650)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
at org.apache.tomcat.core.Handler.service(Handler.java:286)
at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:79
7)
at
org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC
onnectionHandler.java:210)
at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
at java.lang.Thread.run(Thread.java:484)
--
peter royal -> proyal@managingpartners.com
---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org