[ 
https://issues.apache.org/jira/browse/CXF-1524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12587934#action_12587934
 ] 

Alex F commented on CXF-1524:
-----------------------------

that is a real show stopper for us. hope someone can help.

thanks in advance.

-alex

> SOAP with Attachments (BMMimeMultipart):  DispatchInDatabindingInterceptor 's 
> call to soapMessage.countAttachments() throws IOException 
> ----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-1524
>                 URL: https://issues.apache.org/jira/browse/CXF-1524
>             Project: CXF
>          Issue Type: Bug
>          Components: Soap Binding
>    Affects Versions: 2.0.4, 2.0.5
>         Environment: CXF used to call a WebService (client-mode): WS called 
> uses SOAP  with Attachments document/literal wrapped style. client uses 
> dispatch method and Service.Mode.MESSAGE. saaj-api 1.3 and saaj-impl 1.3 , 
> jaxb-api 2.1 all endorsed. called from a junit test case.
>            Reporter: Alex F
>            Priority: Critical
>
> The following call throws a IOException:
> SOAPMessage soapResponseMsg = disp.invoke(soapRequestMsg);
> The response is a SOAP Message with 2 Attachments. One small xml and one 
> rather big pdf (250kb). When the DispatchInDatabindingInterceptor calls 
> oapMessage.countAttachments() the underlying BMMimeMultipart class throws an 
> IOExcpetion. 
> One important thing to mention is that the same code works perfectly when 
> only one xml attachment is returned by the called webservice. Another 
> interesting thing is that in the logging below it states that the message was 
> saved to an tmp file. but when i look at that place there is none. Could that 
> be the reason for the IO  -Handle - exception? 
> Logs:
> 11.04.2008 09:20:10 org.apache.cxf.interceptor.LoggingInInterceptor logging
> INFO: Inbound Message
> ----------------------------
> Encoding: UTF-8
> Headers: {content-type=[multipart/related; type="text/xml"; 
> start="<3EB558C5A498923F1340808112DC20DF>";  
> boundary="----=_Part_361_17089125.1207898405321"], connection=[Keep-Alive], 
> transfer-encoding=[chunked], Date=[Fri, 11 Apr 2008 07:20:05 GMT], 
> Keep-Alive=[timeout=15, max=100], Server=[Apache]}
> Messages: 
> Message (saved to tmp file):
> Filename: C:\DOKUME~1\XXXXXX\LOKALE~1\Temp\cxf-tmp-105260\cos27407tmp
> (message truncated to 102400 bytes)
> Payload: 
> ------=_Part_361_17089125.1207898405321
> Content-Type: text/xml; charset=UTF-8
> Content-Transfer-Encoding: binary
> Content-Id: <3EB558C5A498923F1340808112DC20DF>
> call throws the following Stacktrace:
> 11.04.2008 09:20:36 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> java.lang.RuntimeException: 
> com.sun.xml.messaging.saaj.packaging.mime.MessagingException: IO Error;
>   nested exception is:
>       java.io.IOException: Das Handle ist ungültig
>       at 
> com.sun.xml.messaging.saaj.soap.MessageImpl.countAttachments(MessageImpl.java:734)
>       at 
> org.apache.cxf.jaxws.interceptors.DispatchInDatabindingInterceptor$PostDispatchSOAPHandlerInterceptor.handleMessage(DispatchInDatabindingInterceptor.java:221)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
>       at org.apache.cxf.jaxws.DispatchImpl.onMessage(DispatchImpl.java:330)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1976)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1812)
>       at 
> org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:47)
>       at 
> org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:159)
>       at 
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>       at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:582)
>       at 
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
>       at org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:179)
>       at org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:124)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:597)
>       at junit.framework.TestCase.runTest(TestCase.java:164)
>       at junit.framework.TestCase.runBare(TestCase.java:130)
>       at 
> org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:76)
>       at 
> org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests.access$001(AbstractAnnotationAwareTransactionalTests.java:70)
>       at 
> org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests$1.run(AbstractAnnotationAwareTransactionalTests.java:186)
>       at 
> org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests.runTest(AbstractAnnotationAwareTransactionalTests.java:313)
>       at 
> org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests.runTestTimed(AbstractAnnotationAwareTransactionalTests.java:281)
>       at 
> org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests.runBare(AbstractAnnotationAwareTransactionalTests.java:182)
>       at 
> org.springframework.test.jpa.AbstractJpaTests.runBare(AbstractJpaTests.java:174)
>       at 
> org.springframework.test.jpa.AbstractJpaTests.runBare(AbstractJpaTests.java:255)
>       at junit.framework.TestResult$1.protect(TestResult.java:110)
>       at junit.framework.TestResult.runProtected(TestResult.java:128)
>       at junit.framework.TestResult.run(TestResult.java:113)
>       at junit.framework.TestCase.run(TestCase.java:120)
>       at junit.framework.TestSuite.runTest(TestSuite.java:228)
>       at junit.framework.TestSuite.run(TestSuite.java:223)
>       at 
> org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.java:35)
>       at 
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
>       at 
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
> Caused by: com.sun.xml.messaging.saaj.packaging.mime.MessagingException: IO 
> Error;
>   nested exception is:
>       java.io.IOException: Das Handle ist ungültig
>       at 
> com.sun.xml.messaging.saaj.packaging.mime.internet.BMMimeMultipart.parse(BMMimeMultipart.java:214)
>       at 
> com.sun.xml.messaging.saaj.packaging.mime.internet.MimeMultipart.getCount(MimeMultipart.java:186)
>       at 
> com.sun.xml.messaging.saaj.soap.MessageImpl.initializeAllAttachments(MessageImpl.java:1257)
>       at 
> com.sun.xml.messaging.saaj.soap.MessageImpl.countAttachments(MessageImpl.java:732)
>       ... 43 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