axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jean Marc (JIRA)" <>
Subject [jira] [Updated] (AXIS2-5044) JSONMessageFormatter does not call startDocument on XMLWriter with Mapped convention
Date Mon, 16 May 2011 19:11:47 GMT


Jean Marc updated AXIS2-5044:

    Attachment: axis2.xml

Sample client that generates a simple json request. Must be used with Jettison v1.2+, and
the NPE error happens before the actual request is sent, so the endpoint is never called.

> JSONMessageFormatter does not call startDocument on XMLWriter with  Mapped convention
> -------------------------------------------------------------------------------------
>                 Key: AXIS2-5044
>                 URL:
>             Project: Axis2
>          Issue Type: Bug
>          Components: modules
>            Reporter: Jean Marc
>         Attachments:, axis2.xml
>   Original Estimate: 5m
>  Remaining Estimate: 5m
> When Mapped convention is used, JSONMessageFormatter creates an XMLStreamWriter from
Jettison library of type MappedXMLStreamWriter
> and executes the following code
>   XMLStreamWriter jsonWriter = getJSONWriter(bytesOut);
>   element.serializeAndConsume(jsonWriter);
>   jsonWriter.writeEndDocument();
> at 3 places in the class (in getBytes(), getTargetAddress() and writeTo() ).
> In the above code, there is no call to jsonWriter.writeStartDocument().
> This works for Jettison library v1.1 and below because it does not follow the SAX event
flow, but Jettison v1.2 and above have been refactored to respect the SAX event chain,
> and the XMLStreamWriter expects the calling serializer to generate a startDocument()
event at the beginning. 
> Actually, the axis-json lib 1.5.4 does not specify a Maven version dependency on Jettison
so any version should do, but with Jettison v1.2+
> a simple client trying to serialize a OMElement to send a soap message triggers a NPE
in Jettison when the last endElement() event is triggered
> because the call to startDocument has never been made.
> Simple solution is to add jsonWriter.writeStartDocument() before calling element.serializeAndConsume().

This message is automatically generated by JIRA.
For more information on JIRA, see:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message