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

Colm O hEigeartaigh closed CXF-6519.
------------------------------------

> WS-RM - Invalid response for CloseSequence
> ------------------------------------------
>
>                 Key: CXF-6519
>                 URL: https://issues.apache.org/jira/browse/CXF-6519
>             Project: CXF
>          Issue Type: Bug
>          Components: WS-* Components
>    Affects Versions: 2.7.17
>            Reporter: Jozef Tomek
>            Assignee: Akitoshi Yoshida
>             Fix For: 2.7.18
>
>
> When endpoint is running with WS-RM 1.1/1.2 enabled, after CloseSequence 
> control message (org.apache.cxf.ws.rm.RM11Constants.CLOSE_SEQUENCE_ACTION) is 
> received, invalid empty response (202 Accepted with no content) is returned 
> instead of CloseSequenceResponse.
> This in turn means that source RM endpoint won't proceed to terminate the 
> sequence which results in sequence metadata not being being removed (as part 
> of sequence termination handling) from RMTxStore if it's used on either side.
> I suspect one particular line to be causing the issue - see line 172 where I 
> believe RM11Constants.CLOSE_SEQUENCE_ACTION should be used instead of 
> RM11Constants.SEQUENCE_ACKNOWLEDGMENT_ACTION:
> {code:title=org.apache.cxf.ws.rm.RMInInterceptor|borderStyle=solid}
>  85     protected void handle(Message message) throws SequenceFault, 
> RMException {
>                 ...
>  166         } else {
>  167             rme.receivedControlMessage();
>  168             if 
> (RM10Constants.SEQUENCE_ACKNOWLEDGMENT_ACTION.equals(action)
>  169                 || 
> RM11Constants.SEQUENCE_ACKNOWLEDGMENT_ACTION.equals(action)) {
>  170                 processAcknowledgments(rme, rmps, protocol);
>  171             } else if (RM10Constants.CLOSE_SEQUENCE_ACTION.equals(action)
>  172                 || 
> RM11Constants.SEQUENCE_ACKNOWLEDGMENT_ACTION.equals(action)) {
>  173                 processSequence(destination, message);
>  174             } else if 
> ((RM10Constants.CREATE_SEQUENCE_ACTION.equals(action)
>  175                 || RM11Constants.CREATE_SEQUENCE_ACTION.equals(action)) 
> && !isServer) {
>  176                 LOG.fine("Processing inbound CreateSequence on client 
> side.");
>  177                 Servant servant = rme.getServant();
>  178                 Object csr = servant.createSequence(message);
>  179                 Proxy proxy = rme.getProxy();
>  180                 proxy.createSequenceResponse(csr, protocol);
>  181                 return;
>  182             }
>  183         }
>  184         
>  185         assertReliability(message);
>  186     }
> {code}
> I found the issue on v2.7.14, but I think the issue is present on all 
> versions (since I see suspected code present in all versions)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to