Underlying Stax Reader left in a faulty state when sending MTOM attachments
---------------------------------------------------------------------------

                 Key: AXIS2-4387
                 URL: https://issues.apache.org/jira/browse/AXIS2-4387
             Project: Axis 2.0 (Axis2)
          Issue Type: Bug
          Components: adb
    Affects Versions: 1.4.1
            Reporter: Hans Peter
            Priority: Minor


When sending requests to an endpoint generated by ADB databinding a parsing 
error occurs. The generated ADB classes seems to consume too few tokens from 
the XML reader when data is sent in with MTOM. The same test-requests works 
fine when inlining attachments as base64 encoded strings.

I have attached the relevant part of the schema that was used when i 
encountered the bug.

What I have done as a workaround is to make the change in the generated code in 
IndexFile.Factory#parse(XmlStreamReader). The added line to fix the problem is 
marked with (THIS IS THE FIX)

if (reader.isStartElement() && new javax.xml.namespace.QName(
                    "http://ssa.stockholm.se/";,
                    "Content").equals(reader.getName()))
                {
                    reader.next();
                    if (isReaderMTOMAware(reader)
                        &&
                        
java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_BINARY)))
                    {
                        //MTOM aware reader - get the datahandler directly and 
put it in the object
                        object.setContent(
                            (javax.activation.DataHandler) 
reader.getProperty(org.apache.axiom.om.OMConstants.DATA_HANDLER));
                        while (!reader.isEndElement()) reader.next(); // Read 
until end content (THIS IS THE FIX)
                    }
                    else

-- 
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