[ 
https://issues.apache.org/jira/browse/WSCOMMONS-544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12870429#action_12870429
 ] 

Andreas Veithen commented on WSCOMMONS-544:
-------------------------------------------

The issue can be reproduced using the transport testkit. See the test case 
disabled in r947447:

http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/mail/src/test/java/org/apache/axis2/transport/mail/MailTransportTest.java?rev=947447&r1=947446&r2=947447&view=diff

> Mail transport: synchronous invocation style doesn't work correctly
> -------------------------------------------------------------------
>
>                 Key: WSCOMMONS-544
>                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-544
>             Project: WS-Commons
>          Issue Type: Bug
>          Components: Transport
>            Reporter: Andreas Veithen
>
> The change in r698486 introduced support for the synchronous invocation style 
> in the mail transport. This was implemented by using a callback pattern where 
> the transport sender waits until the transport listener receives the response 
> message and invokes the callback. This however doesn't work as expected. The 
> reason is that after receiving the message, the mail transport listener will 
> close the input stream for the message (and potentially release some other 
> resources, such as closing the mail folder). On the server side, this works 
> well because the listener invokes AxisEngine.receive, which only returns 
> after the service has processed the message. However, on the client side, it 
> will invoke the callback, which will not process the message, but only store 
> it. By the time the client attempts to process the response, the underlying 
> input stream is already closed. This leads to errors such as this one:
> java.lang.RuntimeException: [was class java.io.IOException] Stream closed
>         at 
> com.ctc.wstx.util.ExceptionUtil.throwRuntimeException(ExceptionUtil.java:18)
>         at 
> com.ctc.wstx.sr.StreamScanner.throwLazyError(StreamScanner.java:706)
>         at 
> com.ctc.wstx.sr.BasicStreamReader.safeFinishToken(BasicStreamReader.java:3655)
>         at 
> com.ctc.wstx.sr.BasicStreamReader.getText(BasicStreamReader.java:809)
>         at 
> org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.getText(XMLStreamReaderWrapper.java:160)
>         at 
> org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.getText(XMLStreamReaderWrapper.java:160)
>         at 
> org.apache.axiom.om.impl.builder.StAXBuilder.createOMText(StAXBuilder.java:289)
>         at 
> org.apache.axiom.om.impl.builder.StAXBuilder.createOMText(StAXBuilder.java:252)
>         at 
> org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:267)

-- 
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