Hi Dennis,
after playing around the modified code that omits this handling, I
discovered that that special handling is needed for RM 1.0. because RM
1.0. has a pseudo CloseSequence behavior using its lastMessage action.
I'll run some more tests with the corrected modification and submit
this change if everything is fine.

regards, aki

2014-05-14 3:53 GMT+02:00 Dennis Sosnoski <[email protected]>:
> 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
>>
>

Reply via email to