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]

Reply via email to