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

Freeman Fang commented on SMXCOMP-666:
--------------------------------------

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.

Reply via email to