cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Kulp (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (CXF-2841) WS-RM returns an exception to the client even when its retry mechanim successfully delivers the message after some transmission error
Date Fri, 18 Jun 2010 18:45:26 GMT

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

Daniel Kulp resolved CXF-2841.
------------------------------

      Assignee: Daniel Kulp
    Resolution: Fixed


Patch applied.  Thanks!

> WS-RM returns an exception to the client even when its retry mechanim successfully delivers
the message after some transmission error
> -------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-2841
>                 URL: https://issues.apache.org/jira/browse/CXF-2841
>             Project: CXF
>          Issue Type: Bug
>          Components: WS-* Components
>    Affects Versions: 2.2.7, 2.2.8, 2.2.9
>         Environment: JDK 1.6.0_16, Windows XP
>            Reporter: Aki Yoshida
>            Assignee: Daniel Kulp
>             Fix For: 2.2.10
>
>
> This problem can be easily reproduced in the CXF's ws-rm demo sample.
> When the target server is available at the createSequence step but becomes unavailable
before the application message transmission, the retransmission of this message is performed
by another thread until the message is delivered according to the policy, but the original
client thread is getting the ConnectException while the retransmission is taking place in
background. So in this case, the client gets the exception but the message can be successfully
delivered to the target system when the target server becomes available.
> When the WS-RM feature is engaged and retransmission of the message is taken care by
its runtime, the temporary exception should not be returned to the client.
> One way to fix this issue would be to make the RetransmissionInterceptor's fault handling
method clear the exception object  which is set in the message by the PhaseInterceptorChain's
doInterceptor method. 
> Concretely, adding the following code in org.apache.cxf.ws.rm.RetransmissionInterceptor's
handle method seems to fix this issue.
>        ...
>        if (isFault) {
>            // remove the exception set by the PhaseInterceptorChain
> so that the error does not reach the client
>            // when retransmission is scheduled
>            message.setContent(Exception.class, null);
>            message.getExchange().put(Exception.class, null);
>        }
>        else {
>            WriteOnCloseOutputStrea ...
>            ...
>        }
> Regards, Aki

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message