You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Hans Peter (JIRA)" <ji...@apache.org> on 2009/06/17 15:06:07 UTC

[jira] Updated: (AXIS2-4387) Underlying Stax Reader left in a faulty state when sending MTOM attachments

     [ https://issues.apache.org/jira/browse/AXIS2-4387?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Hans Peter updated AXIS2-4387:
------------------------------

    Attachment: schema_snippet.xml

There's descriptions on which scenarios that actually do work in the schema_snippet.xml file and which scenarios that do not work. 

I presume that: if no new start elements occurs on the input after the Content element then everything seems to work just fine.

> 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
>         Attachments: schema_snippet.xml
>
>
> 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.