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 "Rich Scheuerle (JIRA)" <ji...@apache.org> on 2007/02/14 02:34:05 UTC

[jira] Updated: (AXIS2-2166) JAX-WS Request Message Persistance Failure

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

Rich Scheuerle updated AXIS2-2166:
----------------------------------

    Attachment: patch.txt

> 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
>         Attachments: patch.txt
>
>
> 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: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org