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 2010/10/25 16:29:20 UTC

[jira] Resolved: (AXIS2-4862) JAX-WS: Message is lost when JAX-WS client handler returns false

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

Rich Scheuerle resolved AXIS2-4862.
-----------------------------------

    Resolution: Fixed

revision 1027138

> JAX-WS: Message is lost when JAX-WS client handler returns false
> ----------------------------------------------------------------
>
>                 Key: AXIS2-4862
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4862
>             Project: Axis2
>          Issue Type: Bug
>            Reporter: Rich Scheuerle
>            Assignee: Rich Scheuerle
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> Background:
> The JAX-WS handler chain is run within the JAX-WS module of Axis2.   The JAX-WS module has its own MessageContext (org.apache.axis2.jaxws.core.MessageContext) and
> this MessageContext has its own "blob" object (Message) that holds the xml message.
> When flow logically enters and leaves the JAX-WS module, information (like the Message) is propogated to/from the Axis2 MessageContext.
> For example, when a JAX-WS client handler edits the xml message (via SAAJ apis), it is actually editing the Message object on the jaxws core MessageContext.
> After the handler chain completes, the flow of control moves from the JAX-WS module into the Axis2 outbound transport layer.
> At that time, the Message object is propogated to the Axis2 MessageContext as an OM SOAPEnvelope.
> Problem:
> A user's JAX-WS client outbound handler's handleMessage method will return false if the the user wants the handler chain to stop processing the message.
> In such cases, the chain is reversed and the outbound message becomes the inbound message.
> The handlers are called and processing returns to the client application which invoked the BindingProvider (dispatch or proxy).
> The problem is that the Message that was edited by the outbound handler(s) is lost when the chain is reversed.  
> Thus the client application receives the wrong Message and fails.
> Solution:
> The JAX-WS runtime was failing to propogate its Message object to the Axis2 MessageContext's OM SOAPEnvelope in this scenario.
> The code will be changed to add this copy when the handler chain processing reverses the handler chain.
> I am testing this solution now.

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