axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eran Chinthaka <chinth...@opensource.lk>
Subject Re: [Axis2] Test failure in org.apache.axis2.saaj.integration.IntegrationTest
Date Tue, 04 Apr 2006 19:25:41 GMT
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
> 
> 



Mime
View raw message