[ https://issues.apache.org/activemq/browse/SM-498?page=all ]

Guillaume Nodet resolved SM-498.
--------------------------------

    Fix Version/s: 3.0-M3
       Resolution: Fixed
         Assignee: Guillaume Nodet

Author: gnodet
Date: Tue Jul 25 08:34:53 2006
New Revision: 425425

URL: http://svn.apache.org/viewvc?rev=425425&view=rev
Log:
SM-498: StaxSource: Bug in parse() method for character streams

Modified:
    
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/jaxp/StaxSource.java
    
incubator/servicemix/trunk/servicemix-core/src/test/java/org/apache/servicemix/jbi/jaxp/StaxSourceTest.java
    
incubator/servicemix/trunk/servicemix-core/src/test/resources/org/apache/servicemix/jbi/jaxp/test.xml



> StaxSource: Bug in parse() method for character streams
> -------------------------------------------------------
>
>                 Key: SM-498
>                 URL: https://issues.apache.org/activemq/browse/SM-498
>             Project: ServiceMix
>          Issue Type: Bug
>          Components: servicemix-core
>    Affects Versions: incubation
>            Reporter: Holger Bethke
>         Assigned To: Guillaume Nodet
>             Fix For: 3.0-M3
>
>
> We are playing around with servicemix and the jsr181 component when we run 
> into a strange problem. We are sending a SOAP request to a defined Service by 
> the jsr181 component with a long parameter value inside. The strange thing is 
> that the parameter value won't be send correctly to the NMR. Instead the 
> value is repeated several times for the first 1024 characters. We took a look 
> in your source files and found the responsible location for that behaviour. 
> It looks like there's a bug in the class 
> org.apache.servicemix.jbi.jaxp.StaxSource, line 66:
>     protected void parse() throws SAXException {
>         try {
>             contentHandler.startDocument();
>             while (true) {
>                 switch (streamReader.getEventType()) {
>                 case XMLStreamConstants.ATTRIBUTE:
>                 case XMLStreamConstants.CDATA:
>                     break;
>                 case XMLStreamConstants.CHARACTERS:
>                     if (!streamReader.isWhiteSpace()) {
>                         for (int textLength = streamReader.getTextLength(); 
> textLength > 0; textLength -= chars.length) {
>                             int l = Math.min(textLength, chars.length);
> ==>                      streamReader.getTextCharacters(0, chars, 0, l);
>                             contentHandler.characters(chars, 0, l);
>                         }
>                     }
>                     break;
> The first parameter of the method XMLStreamReader.getTextCharacters() defines 
> the sourceStart (index of the first character in the source array to copy) 
> parameter. In your  implementation this value is 0 every time. That's the 
> reason why we run into our problem... 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to