cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dennis Sosnoski <...@sosnoski.com>
Subject Re: RM CloseSequence message with the wrong Sequence header
Date Wed, 14 May 2014 01:53:10 GMT
Hi Aki,

We definitely don't want that Sequence header on the CloseSequence 
message. That code has been in place since I split the interceptors, so 
it's probably just a mistake from when I was doing the split. I'll take 
out the added clause on the if.

Thanks for catching this, Aki!

   - Dennis

On 05/14/2014 08:24 AM, Aki Yoshida wrote:
> Hi Dennis,
> I noticed CloseSequence is sent out when the RM 1.1 endpoint is
> shutdown for 3.0.0-SNAPSHOT.
>
> But it seems that this CloseSequence message is incorrectly generated,
> including the Sequence header.
>
> The message looks like when the endpoint is shutdown after sending two
> messages (see the Sequence header).
>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>    <soap:Header>
>      <Action xmlns="http://www.w3.org/2005/08/addressing">http://docs.oasis-open.org/ws-rx/wsrm/200702/CloseSequence</Action>
>      <MessageID xmlns="http://www.w3.org/2005/08/addressing">urn:uuid:93e26fdb-cbe2-4204-ac8e-39ca3ad385a6</MessageID>
>      <To xmlns="http://www.w3.org/2005/08/addressing">http://localhost:9000/SoapContext/GreeterPort</To>
>      <ReplyTo xmlns="http://www.w3.org/2005/08/addressing">
>        <Address>http://www.w3.org/2005/08/addressing/anonymous</Address>
>      </ReplyTo>
>      <wsrm:Sequence soap:mustUnderstand="1"
> xmlns:ns2="http://www.w3.org/2005/08/addressing"
> xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200702">
>        <wsrm:Identifier>urn:uuid:9cbc8993-cdb7-4718-bec7-63d70889c142</wsrm:Identifier>
>        <wsrm:MessageNumber>3</wsrm:MessageNumber>
>      </wsrm:Sequence>
>    </soap:Header>
>    <soap:Body>
>      <CloseSequence
> xmlns="http://docs.oasis-open.org/ws-rx/wsrm/200702"
> xmlns:ns2="http://www.w3.org/2005/08/addressing">
>        <Identifier>urn:uuid:9cbc8993-cdb7-4718-bec7-63d70889c142</Identifier>
>        <LastMsgNumber>2</LastMsgNumber>
>      </CloseSequence>
>    </soap:Body>
> </soap:Envelope>
>
> It looks like RMCaptureOutInterceptor is doing this special handling
> for the CloseSequence action to include the sequence in its current RM
> context properties.
>
>     114        boolean isApplicationMessage =
> !RMContextUtils.isRMProtocolMessage(action);
>     115        boolean isPartialResponse = MessageUtils.isPartialResponse(msg);
>     116        RMConstants constants = protocol.getConstants();
>     117        boolean isLastMessage =
> constants.getCloseSequenceAction().equals(action);
>     118
> ...
>     145        if ((isApplicationMessage || (isLastMessage &&
> invocationContext != null)) && !isPartialResponse) {
>     146            if (LOG.isLoggable(Level.FINE)) {
>     147                LOG.fine("inbound sequence: " + (null == inSeqId
> ? "null" : inSeqId.getValue()));
>     148            }
> …
>     178        }
>
> I am not sure why this special handling is needed. Not handling the
> CloseSequence message this way (e.g., attach the sequence to the
> context only for the app messages), I can see the following
> CloseSequence message is instead sent out.
>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>    <soap:Header>
>      <Action xmlns="http://www.w3.org/2005/08/addressing">http://docs.oasis-open.org/ws-rx/wsrm/200702/CloseSequence</Action>
>      <MessageID xmlns="http://www.w3.org/2005/08/addressing">urn:uuid:8c0f3805-934d-4f8a-862d-e8475d67d11b</MessageID>
>      <To xmlns="http://www.w3.org/2005/08/addressing">http://localhost:9000/SoapContext/GreeterPort</To>
>      <ReplyTo xmlns="http://www.w3.org/2005/08/addressing">
>        <Address>http://www.w3.org/2005/08/addressing/anonymous</Address>
>      </ReplyTo>
>    </soap:Header>
>    <soap:Body>
>      <CloseSequence
> xmlns="http://docs.oasis-open.org/ws-rx/wsrm/200702"
> xmlns:ns2="http://www.w3.org/2005/08/addressing">
>        <Identifier>urn:uuid:ce1619a6-a0b9-4d9b-901e-594c54e4a220</Identifier>
>        <LastMsgNumber>2</LastMsgNumber>
>      </CloseSequence>
>    </soap:Body>
> </soap:Envelope>
>
> and this looks to be correct. Maybe there was a reason for the above
> code and you could comment on this?
>
> thanks.
> regards, aki
>


Mime
View raw message