cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex F (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CXF-1524) SOAP with Attachments (BMMimeMultipart): DispatchInDatabindingInterceptor 's call to soapMessage.countAttachments() throws IOException
Date Mon, 28 Apr 2008 09:34:57 GMT

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

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

sorry for the delay. the latest snapshot release 2.0.6 works.

thanks.

> 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
>            Assignee: Daniel Kulp
>            Priority: Critical
>             Fix For: 2.0.6
>
>
> 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.


Mime
View raw message