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 "Christopher Weiss (JIRA)" <ji...@apache.org> on 2007/09/12 20:13:32 UTC
[jira] Updated: (AXIS2-3195) AXIOM parser's throwing
NullPointerException if OMElement.getParent() is instance of OMDocument and
Rampart is engaged
[ https://issues.apache.org/jira/browse/AXIS2-3195?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Christopher Weiss updated AXIS2-3195:
-------------------------------------
Description:
Please see attached project to demonstrate the issue. With the axis2-1.2 release and earlier, the AXIOM parser throws a NullPointerException when processing requests using Rampart:
Thread [main] (Suspended (exception NullPointerException))
OMStAXWrapper.updateNextNode() line: 981
OMStAXWrapper.updateLastNode() line: 950
OMStAXWrapper.next() line: 913
StAXSOAPModelBuilder(StAXOMBuilder).next() line: 111
SOAPEnvelopeImpl(NodeImpl).build() line: 469
SOAPMessageImpl(DocumentImpl).build() line: 476
Axis2Util.getDocumentFromSOAPEnvelope(SOAPEnvelope, boolean) line: 107
RampartMessageData.<init>(MessageContext, boolean) line: 146
MessageBuilder.build(MessageContext) line: 56
RampartSender.invoke(MessageContext) line: 59
Phase.invoke(MessageContext) line: 382
AxisEngine.invoke(MessageContext) line: 522
AxisEngine.send(MessageContext) line: 655
OutInAxisOperationClient.send(MessageContext) line: 237
OutInAxisOperationClient.execute(boolean) line: 202
EchoStub.EchoOperation(OMElement) line: 127
Client.main(String[]) line: 47
The cause of the exception is the AXIOM parser's setting the boolean variable needToThrowEndDocument in the DOMStAXWrapper to true if the current node being parsed has a parent node of type OMDocument..
Temp fix: In the code, when creating an AXIOM compatible schema, we did the following:
try {
// Get the schema is it is already AXIOM compatible, or convert it if it isn't.
OMElement schema = docSchema instanceof OMDocument ? (OMElement) docSchema
.getDocumentElement() : org.apache.axis2.util.XMLUtils.toOM(docSchema.getDocumentElement());
// Workaround to fix an issue with the building the OMElement if the
// parent is an OMDocument. Detach the element from the parent Document...
if (schema.getParent() != null && schema.getParent() instanceof OMDocument) {
schema.detach();
}
elementList.add(org.apache.axis2.databinding.utils.Constants.OM_ELEMENT_KEY);
elementList.add(schema);
} catch (Exception e) {
throw new java.lang.RuntimeException("Can't convert schema to AXIOM!", e);
}
was:
I can send a complete project to demonstrate the issue if necessary. With the axis2-1.2 release and earlier, the AXIOM parser may throw a NullPointerException when processing requests:
Thread [main] (Suspended (exception NullPointerException))
OMStAXWrapper.updateNextNode() line: 981
OMStAXWrapper.updateLastNode() line: 950
OMStAXWrapper.next() line: 913
StAXSOAPModelBuilder(StAXOMBuilder).next() line: 111
SOAPEnvelopeImpl(NodeImpl).build() line: 469
SOAPMessageImpl(DocumentImpl).build() line: 476
Axis2Util.getDocumentFromSOAPEnvelope(SOAPEnvelope, boolean) line: 107
RampartMessageData.<init>(MessageContext, boolean) line: 146
MessageBuilder.build(MessageContext) line: 56
RampartSender.invoke(MessageContext) line: 59
Phase.invoke(MessageContext) line: 382
AxisEngine.invoke(MessageContext) line: 522
AxisEngine.send(MessageContext) line: 655
OutInAxisOperationClient.send(MessageContext) line: 237
OutInAxisOperationClient.execute(boolean) line: 202
EchoStub.EchoOperation(OMElement) line: 127
Client.main(String[]) line: 47
The cause of the exception is the AXIOM parser's setting the boolean variable needToThrowEndDocument in the DOMStAXWrapper to true if the current node being parsed has a parent node of type OMDocument..
Temp fix: In the code, when creating an AXIOM compatible schema, we did the following:
try {
// Get the schema is it is already AXIOM compatible, or convert it if it isn't.
OMElement schema = docSchema instanceof OMDocument ? (OMElement) docSchema
.getDocumentElement() : org.apache.axis2.util.XMLUtils.toOM(docSchema.getDocumentElement());
// Workaround to fix an issue with the building the OMElement if the
// parent is an OMDocument. Detach the element from the parent Document...
if (schema.getParent() != null && schema.getParent() instanceof OMDocument) {
schema.detach();
}
elementList.add(org.apache.axis2.databinding.utils.Constants.OM_ELEMENT_KEY);
elementList.add(schema);
} catch (Exception e) {
throw new java.lang.RuntimeException("Can't convert schema to AXIOM!", e);
}
Affects Version/s: (was: 1.2)
Summary: AXIOM parser's throwing NullPointerException if OMElement.getParent() is instance of OMDocument and Rampart is engaged (was: AXIOM parser's throwing NullPointerException if OMElement.getParent() is instance of OMDocument)
> AXIOM parser's throwing NullPointerException if OMElement.getParent() is instance of OMDocument and Rampart is engaged
> ----------------------------------------------------------------------------------------------------------------------
>
> Key: AXIS2-3195
> URL: https://issues.apache.org/jira/browse/AXIS2-3195
> Project: Axis 2.0 (Axis2)
> Issue Type: Bug
> Environment: Windows XP SP2, Axis2 1.2, Tomcat 6.0.13
> Reporter: Christopher Weiss
>
> Please see attached project to demonstrate the issue. With the axis2-1.2 release and earlier, the AXIOM parser throws a NullPointerException when processing requests using Rampart:
> Thread [main] (Suspended (exception NullPointerException))
> OMStAXWrapper.updateNextNode() line: 981
> OMStAXWrapper.updateLastNode() line: 950
> OMStAXWrapper.next() line: 913
> StAXSOAPModelBuilder(StAXOMBuilder).next() line: 111
> SOAPEnvelopeImpl(NodeImpl).build() line: 469
> SOAPMessageImpl(DocumentImpl).build() line: 476
> Axis2Util.getDocumentFromSOAPEnvelope(SOAPEnvelope, boolean) line: 107
> RampartMessageData.<init>(MessageContext, boolean) line: 146
> MessageBuilder.build(MessageContext) line: 56
> RampartSender.invoke(MessageContext) line: 59
> Phase.invoke(MessageContext) line: 382
> AxisEngine.invoke(MessageContext) line: 522
> AxisEngine.send(MessageContext) line: 655
> OutInAxisOperationClient.send(MessageContext) line: 237
> OutInAxisOperationClient.execute(boolean) line: 202
> EchoStub.EchoOperation(OMElement) line: 127
> Client.main(String[]) line: 47
> The cause of the exception is the AXIOM parser's setting the boolean variable needToThrowEndDocument in the DOMStAXWrapper to true if the current node being parsed has a parent node of type OMDocument..
> Temp fix: In the code, when creating an AXIOM compatible schema, we did the following:
>
> try {
> // Get the schema is it is already AXIOM compatible, or convert it if it isn't.
> OMElement schema = docSchema instanceof OMDocument ? (OMElement) docSchema
> .getDocumentElement() : org.apache.axis2.util.XMLUtils.toOM(docSchema.getDocumentElement());
>
> // Workaround to fix an issue with the building the OMElement if the
> // parent is an OMDocument. Detach the element from the parent Document...
> if (schema.getParent() != null && schema.getParent() instanceof OMDocument) {
> schema.detach();
> }
> elementList.add(org.apache.axis2.databinding.utils.Constants.OM_ELEMENT_KEY);
> elementList.add(schema);
> } catch (Exception e) {
> throw new java.lang.RuntimeException("Can't convert schema to AXIOM!", e);
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org