You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Freeman Fang (JIRA)" <ji...@apache.org> on 2009/11/02 06:13:52 UTC

[jira] Issue Comment Edited: (SMXCOMP-666) net.sf.saxon.trans.DynamicError: com.ctc.wstx.exc.WstxIOException: Attempted read on closed stream

    [ https://issues.apache.org/activemq/browse/SMXCOMP-666?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=55115#action_55115 ] 

Freeman Fang edited comment on SMXCOMP-666 at 11/1/09 9:11 PM:
---------------------------------------------------------------

Hi,

This is a known issue for a input stream which isn't re-readable but you try to consume the stream twice, so when you consume the input stream the second time, you get the exception like "Attempted read on closed stream."

When you set the log at 'DEBUG' level, actually the input stream will be changed to re-readable first underlying, in order to print out the stream content  but you still can read the content again, that's why it's working with log at 'DEBUG' level.

So the solution could be change the stream to re-readable in your flow if you need read it for multiple times.

It's not a bug IMO.

Freeman



      was (Author: ffang):
    Hi,

This is a known issue for a input stream which isn't re-readable but you try to consume the stream twice, so when you consume the input stream the second time, you get the exception like "Attempted read on closed stream."

When you set the log at 'DEBUG' level, actually the input stream will be changed to re-readable first underlying, in order to print out the stream content  but you still can read the content again, that's why it's working with log at 'DEBUG' level.

So the solution could be change the stream to re-readable.

Freeman


  
> net.sf.saxon.trans.DynamicError: com.ctc.wstx.exc.WstxIOException: Attempted read on closed stream
> --------------------------------------------------------------------------------------------------
>
>                 Key: SMXCOMP-666
>                 URL: https://issues.apache.org/activemq/browse/SMXCOMP-666
>             Project: ServiceMix Components
>          Issue Type: Bug
>          Components: servicemix-saxon
>         Environment: smx-3.3.1.0-fuse / redhat
>            Reporter: Noseda Anne
>
> When the package 'org.apache.servicemix' in the log4j.xml file is configured at 'DEBUG' level, the SA worked perfectly and when we change it to 'INFO' level, an exception occurred every time in the saxon component. You can find the complete stacktrace at the end of the post.
> This occured with the version smx-3.3.1.0-fuse and with the last version 3.3.1.20-fuse. But it didn't occur when there is only a few SA. It occurred when we have a lot of SA deployed on our ESB. Another thing strange is the fact that we use the saxon component in a lot of our SA but the error occurred only in one use case.
> Here the saxon configuration :
> -----------------------------------------
> <saxon:xslt service="ppt:saxonFiltreReseauService" 
> 				endpoint="saxonFiltreReseauEndpoint"
> 				resource="classpath:xsl/detailEtabReponse.xsl" />
> Here the stacktrace :
> ----------------------------
> 2009-10-27 15:37:11,102 | ERROR | pool-flow.seda.servicemix-saxon-thread-5 | SaxonComponent           | ervicemix.common.BaseLifeCycle   48 | Error processing exchange InOut[
>   id: ID:193.190.97.244-12496664f45-6:25
>   status: Active
>   role: provider
>   service: {http://etnic.be/fase/internal/detail/etab/ppt}saxonFiltreReseauService
>   endpoint: saxonFiltreReseauEndpoint
>   in: Unable to display: java.util.EmptyStackException
>   out: null
> ]
> net.sf.saxon.trans.DynamicError: com.ctc.wstx.exc.WstxIOException: Attempted read on closed stream.
> 	at net.sf.saxon.event.Sender.sendSAXSource(Sender.java:308)
> 	at net.sf.saxon.event.Sender.send(Sender.java:142)
> 	at net.sf.saxon.event.Sender.send(Sender.java:43)
> 	at net.sf.saxon.Controller.transform(Controller.java:1504)
> 	at org.apache.servicemix.saxon.XsltEndpoint.transformContent(XsltEndpoint.java:119)
> 	at org.apache.servicemix.saxon.XsltEndpoint.transform(XsltEndpoint.java:92)
> 	at org.apache.servicemix.saxon.SaxonEndpoint.processInOut(SaxonEndpoint.java:220)
> 	at org.apache.servicemix.common.endpoints.ProviderEndpoint.process(ProviderEndpoint.java:109)
> 	at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
> 	at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
> 	at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
> 	at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
> 	at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
> 	at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
> 	at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> 	at java.lang.Thread.run(Thread.java:595)
> Caused by: com.ctc.wstx.exc.WstxIOException: Attempted read on closed stream.
> 	at org.apache.servicemix.jbi.jaxp.StaxSource.parse(StaxSource.java:154)
> 	at org.apache.servicemix.jbi.jaxp.StaxSource.parse(StaxSource.java:266)
> 	at net.sf.saxon.event.Sender.sendSAXSource(Sender.java:300)
> 	... 17 more
> Caused by: com.ctc.wstx.exc.WstxIOException: Attempted read on closed stream.
> 	at com.ctc.wstx.sr.StreamScanner.throwFromIOE(StreamScanner.java:683)
> 	at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1086)
> 	at javax.xml.stream.util.StreamReaderDelegate.next(StreamReaderDelegate.java:59)
> 	at org.apache.servicemix.jbi.jaxp.ExtendedXMLStreamReader.next(ExtendedXMLStreamReader.java:61)
> 	at org.apache.servicemix.jbi.jaxp.FragmentStreamReader.next(FragmentStreamReader.java:77)
> 	at org.apache.servicemix.jbi.jaxp.StaxSource.parse(StaxSource.java:146)
> 	... 19 more
> Caused by: java.io.IOException: Attempted read on closed stream.
> 	at org.apache.commons.httpclient.AutoCloseInputStream.isReadAllowed(AutoCloseInputStream.java:165)
> 	at org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputStream.java:125)
> 	at com.ctc.wstx.io.UTF8Reader.loadMore(UTF8Reader.java:362)
> 	at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:110)
> 	at com.ctc.wstx.io.ReaderSource.readInto(ReaderSource.java:84)
> 	at com.ctc.wstx.io.BranchingReaderSource.readInto(BranchingReaderSource.java:57)
> 	at com.ctc.wstx.sr.StreamScanner.loadMoreFromCurrent(StreamScanner.java:1021)
> 	at com.ctc.wstx.sr.StreamScanner.parseLocalName2(StreamScanner.java:1771)
> 	at com.ctc.wstx.sr.StreamScanner.parseLocalName(StreamScanner.java:1731)
> 	at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2912)
> 	at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2846)
> 	at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
> 	... 23 more
> ---------
> com.ctc.wstx.exc.WstxIOException: Attempted read on closed stream.
> 	at org.apache.servicemix.jbi.jaxp.StaxSource.parse(StaxSource.java:154)
> 	at org.apache.servicemix.jbi.jaxp.StaxSource.parse(StaxSource.java:266)
> 	at net.sf.saxon.event.Sender.sendSAXSource(Sender.java:300)
> 	at net.sf.saxon.event.Sender.send(Sender.java:142)
> 	at net.sf.saxon.event.Sender.send(Sender.java:43)
> 	at net.sf.saxon.Controller.transform(Controller.java:1504)
> 	at org.apache.servicemix.saxon.XsltEndpoint.transformContent(XsltEndpoint.java:119)
> 	at org.apache.servicemix.saxon.XsltEndpoint.transform(XsltEndpoint.java:92)
> 	at org.apache.servicemix.saxon.SaxonEndpoint.processInOut(SaxonEndpoint.java:220)
> 	at org.apache.servicemix.common.endpoints.ProviderEndpoint.process(ProviderEndpoint.java:109)
> 	at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
> 	at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
> 	at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
> 	at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
> 	at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
> 	at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
> 	at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> 	at java.lang.Thread.run(Thread.java:595)
> Caused by: com.ctc.wstx.exc.WstxIOException: Attempted read on closed stream.
> 	at com.ctc.wstx.sr.StreamScanner.throwFromIOE(StreamScanner.java:683)
> 	at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1086)
> 	at javax.xml.stream.util.StreamReaderDelegate.next(StreamReaderDelegate.java:59)
> 	at org.apache.servicemix.jbi.jaxp.ExtendedXMLStreamReader.next(ExtendedXMLStreamReader.java:61)
> 	at org.apache.servicemix.jbi.jaxp.FragmentStreamReader.next(FragmentStreamReader.java:77)
> 	at org.apache.servicemix.jbi.jaxp.StaxSource.parse(StaxSource.java:146)
> 	... 19 more
> Caused by: java.io.IOException: Attempted read on closed stream.
> 	at org.apache.commons.httpclient.AutoCloseInputStream.isReadAllowed(AutoCloseInputStream.java:165)
> 	at org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputStream.java:125)
> 	at com.ctc.wstx.io.UTF8Reader.loadMore(UTF8Reader.java:362)
> 	at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:110)
> 	at com.ctc.wstx.io.ReaderSource.readInto(ReaderSource.java:84)
> 	at com.ctc.wstx.io.BranchingReaderSource.readInto(BranchingReaderSource.java:57)
> 	at com.ctc.wstx.sr.StreamScanner.loadMoreFromCurrent(StreamScanner.java:1021)
> 	at com.ctc.wstx.sr.StreamScanner.parseLocalName2(StreamScanner.java:1771)
> 	at com.ctc.wstx.sr.StreamScanner.parseLocalName(StreamScanner.java:1731)
> 	at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2912)
> 	at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2846)
> 	at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
> 	... 23 more
> ---------
> com.ctc.wstx.exc.WstxIOException: Attempted read on closed stream.
> 	at com.ctc.wstx.sr.StreamScanner.throwFromIOE(StreamScanner.java:683)
> 	at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1086)
> 	at javax.xml.stream.util.StreamReaderDelegate.next(StreamReaderDelegate.java:59)
> 	at org.apache.servicemix.jbi.jaxp.ExtendedXMLStreamReader.next(ExtendedXMLStreamReader.java:61)
> 	at org.apache.servicemix.jbi.jaxp.FragmentStreamReader.next(FragmentStreamReader.java:77)
> 	at org.apache.servicemix.jbi.jaxp.StaxSource.parse(StaxSource.java:146)
> 	at org.apache.servicemix.jbi.jaxp.StaxSource.parse(StaxSource.java:266)
> 	at net.sf.saxon.event.Sender.sendSAXSource(Sender.java:300)
> 	at net.sf.saxon.event.Sender.send(Sender.java:142)
> 	at net.sf.saxon.event.Sender.send(Sender.java:43)
> 	at net.sf.saxon.Controller.transform(Controller.java:1504)
> 	at org.apache.servicemix.saxon.XsltEndpoint.transformContent(XsltEndpoint.java:119)
> 	at org.apache.servicemix.saxon.XsltEndpoint.transform(XsltEndpoint.java:92)
> 	at org.apache.servicemix.saxon.SaxonEndpoint.processInOut(SaxonEndpoint.java:220)
> 	at org.apache.servicemix.common.endpoints.ProviderEndpoint.process(ProviderEndpoint.java:109)
> 	at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
> 	at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
> 	at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
> 	at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
> 	at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
> 	at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
> 	at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> 	at java.lang.Thread.run(Thread.java:595)
> Caused by: java.io.IOException: Attempted read on closed stream.
> 	at org.apache.commons.httpclient.AutoCloseInputStream.isReadAllowed(AutoCloseInputStream.java:165)
> 	at org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputStream.java:125)
> 	at com.ctc.wstx.io.UTF8Reader.loadMore(UTF8Reader.java:362)
> 	at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:110)
> 	at com.ctc.wstx.io.ReaderSource.readInto(ReaderSource.java:84)
> 	at com.ctc.wstx.io.BranchingReaderSource.readInto(BranchingReaderSource.java:57)
> 	at com.ctc.wstx.sr.StreamScanner.loadMoreFromCurrent(StreamScanner.java:1021)
> 	at com.ctc.wstx.sr.StreamScanner.parseLocalName2(StreamScanner.java:1771)
> 	at com.ctc.wstx.sr.StreamScanner.parseLocalName(StreamScanner.java:1731)
> 	at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2912)
> 	at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2846)
> 	at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
> 	... 23 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.