JAX-WS Request Message Persistance Failure
------------------------------------------
Key: AXIS2-2166
URL: https://issues.apache.org/jira/browse/AXIS2-2166
Project: Axis 2.0 (Axis2)
Issue Type: Bug
Components: jaxws
Reporter: Rich Scheuerle
Assigned To: Rich Scheuerle
Here is the scenario:
1) JAXWSReceiver receives request message.
2) During invoke processing, portions of the request message are converted
into business objects. This is intentionally a destructive transformation for
performance reasons (i.e. we don't want to cache the om tree while converting
to a JAXB object).
3) Subsequent outbound RM processing persists the response MessageContext.
4) Pesisting the MessageContext also persists the parent OperationContext,
which in turn, persists the request MessageContext.
5) Persisting the request MessageContext causes an exception due to the
destructive transformation in (2).
I am working on a solution to fix this problem in a manner that does not
dramatically hinder performance.
Here is an example exception:
[12/02/07 10:38:38:062 GMT] 00000032 ExceptionFact 1
org.apache.commons.logging.impl.Jdk14Logger debug Create Exception:
javax.xml.ws.WebServiceException: An internal
error occurred. The block for
org.apache.axis2.jaxws.message.databinding.impl.SourceBlockImpl is already
consumed. Processing cannot continue. Run with the debug option to determine
where the block was first consumed.
at
org.apache.axis2.jaxws.ExceptionFactory.createWebServiceException(ExceptionFactory.java:177)
at
org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:79)
at
org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:124)
at
org.apache.axis2.jaxws.message.impl.BlockImpl.getXMLStreamReader(BlockImpl.java:189)
at
org.apache.axis2.jaxws.message.impl.BlockImpl.getReader(BlockImpl.java:215)
at
org.apache.axiom.om.impl.llom.OMSourcedElementImpl.getDirectReader(OMSourcedElementImpl.java:121)
at
org.apache.axiom.om.impl.llom.OMSourcedElementImpl.forceExpand(OMSourcedElementImpl.java:144)
at
org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:531)
at
org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:807)
at
org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:792)
at
org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:807)
at
org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize(SOAPEnvelopeImpl.java:180)
at
org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:792)
at
org.apache.axiom.om.impl.llom.OMNodeImpl.serialize(OMNodeImpl.java:400)
at
org.apache.axis2.context.MessageContext.writeExternal(MessageContext.java:2148)
at
java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1397)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1375)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:324)
at
org.apache.axis2.util.ObjectStateUtils.writeHashMap(ObjectStateUtils.java:976)
at
org.apache.axis2.context.OperationContext.writeExternal(OperationContext.java:514)
at
java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1397)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1375)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:324)
at
org.apache.axis2.util.ObjectStateUtils.writeObject(ObjectStateUtils.java:373)
at
org.apache.axis2.context.MessageContext.writeExternal(MessageContext.java:2655)
at
java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1397)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1375)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:324)
--
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]