Fixed !!.

Seems like you've drilled down to the exact location of the bug.

Thanks,
Chinthaka


Bill Nagy wrote:
> Hi,
> 
> I just updated from subversion and the SAAJ Integration test seems to be
> failing:
> 
>     [junit] Running org.apache.axis2.saaj.integration.IntegrationTest
>     [junit] Tests run: 3, Failures: 0, Errors: 3, Time elapsed: 9.717
> sec
>     [junit] [ERROR] TEST
> org.apache.axis2.saaj.integration.IntegrationTest FAILED
> 
> 
> one of the failures is as follows:
> 
>   <testcase name="testSendReceiveMessageWithAttachment" time="3.094">
>     <error message="java.lang.UnsupportedOperationException"
> type="org.apache.axiom.om.OMException">org.apache.axiom.om.OMException:
> java.lang.UnsupportedOperationException
>       at org.apache.axiom.om.impl.builder.StAXOMBuilder.next
> (StAXOMBuilder.java:280)
>       at org.apache.axiom.om.impl.llom.OMElementImpl.getNextOMSibling
> (OMElementImpl.java:263)
>       at org.apache.axiom.om.impl.traverse.OMChildrenIterator.next
> (OMChildrenIterator.java:111)
>       at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize
> (OMElementImpl.java:766)
>       at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize
> (SOAPEnvelopeImpl.java:163)
>       at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize
> (OMElementImpl.java:751)
>       at org.apache.axiom.om.impl.llom.OMNodeImpl.serialize
> (OMNodeImpl.java:306)
>       at org.apache.axiom.om.impl.llom.OMNodeImpl.serialize
> (OMNodeImpl.java:347)
>       at org.apache.axiom.om.impl.llom.OMElementImpl.toString
> (OMElementImpl.java:894)
>       at java.lang.String.valueOf(String.java:2131)
>       at java.lang.StringBuffer.append(StringBuffer.java:370)
>       at org.apache.axis2.saaj.SOAPConnectionImpl.toOMSOAPEnvelope
> (SOAPConnectionImpl.java:293)
>       at org.apache.axis2.saaj.SOAPConnectionImpl.handleSOAPMessage
> (SOAPConnectionImpl.java:147)
>       at org.apache.axis2.saaj.SOAPConnectionImpl.call
> (SOAPConnectionImpl.java:116)
>       at
> org.apache.axis2.saaj.integration.IntegrationTest.testSendReceiveMessageWithAttachment(IntegrationTest.java:127)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at sun.reflect.NativeMethodAccessorImpl.invoke
> (NativeMethodAccessorImpl.java:39)
>       at sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:25)
> Caused by: java.lang.UnsupportedOperationException
>       at org.apache.axiom.om.impl.dom.DOMStAXWrapper.getProperty
> (DOMStAXWrapper.java:880)
>       at org.apache.axiom.om.impl.builder.StAXBuilder.createOMText
> (StAXBuilder.java:190)
>       at org.apache.axiom.om.impl.builder.StAXBuilder.createOMText
> (StAXBuilder.java:168)
>       at org.apache.axiom.om.impl.builder.StAXOMBuilder.next
> (StAXOMBuilder.java:222)
>       ... 28 more
> </error>
>   </testcase>
> 
> 
> 
> As the stack trace says,
> org.apache.axiom.om.impl.dom.DOMStAXWrapper.getProperty throws an
> UnsupportedOperationException (always).  I'm guessing that these errors
> may have arisen due to this change:
> 
> /webservices/commons/trunk/modules/axiom/src/org/apache/axiom/om/impl/builder/StAXBuilder.java
> Revision 391323 - (view) (download) (as text) - [select for diffs] 
> Modified Tue Apr 4 14:39:20 2006 UTC (3 hours, 22 minutes ago) by
> chinthaka 
> File length: 13046 byte(s) 
> Diff to previous 391204 (colored) 
> - problem: when serializing into a text node, we lose the fact that sometimes 
> the text node's content is binary characters
>     ==> hence, right now, to be safe we always serialize as base64
> 
> - solution for ADB (which may be used by others):
>     - if the text content being generated is infact of binary nature (i.e., a 
> DataHandler), then when a CHARACTERS event is generated 
> by the ADB pull parser, the parser's getProperty() method will return true 
> for "are you binary?"
>     - if the value of that property is true, then parser.getProperty() for 
> the "data handler" property will return a data handler 
> which can be used to access the binary data
> 
> - we also change StaXOMBuilder to check this property and create the TextNode 
> appropriately 
> 
> This commit will only change StAXOMBuilder and hopefully Ajith will change 
> ADB for this.
> 
> (This commit has a small catch as getProperty method of XMLStreamReader will 
> return IllegalArgumentException, which is a 
> RuntimeException if the property is not found. So I had to catch this and 
> create OMText within the catch statement. )
> 
> 
> -Bill
> 
> 


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to