Author: richard.opalka(a)jboss.com
Date: 2007-12-04 11:53:09 -0500 (Tue, 04 Dec 2007)
New Revision: 5180
Modified:
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/RMSequenceImpl.java
Log:
repair exchanged messages scenario
Modified:
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/RMSequenceImpl.java
===================================================================
---
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/RMSequenceImpl.java 2007-12-04
16:52:06 UTC (rev 5179)
+++
stack/native/trunk/src/main/java/org/jboss/ws/extensions/wsrm/RMSequenceImpl.java 2007-12-04
16:53:09 UTC (rev 5180)
@@ -272,7 +272,7 @@
/**
* Sets up terminated flag to true.
*/
- private void sendMessage(String action, QName operationQName) throws RMException
+ private void sendMessage(String action, QName operationQName, List protocolMessages)
throws RMException
{
try
{
@@ -295,9 +295,7 @@
{
rmRequestContext = new HashMap();
}
- List outMsgs = new LinkedList();
- outMsgs.add(operationQName);
- rmRequestContext.put(RMConstant.PROTOCOL_MESSAGES, outMsgs);
+ rmRequestContext.put(RMConstant.PROTOCOL_MESSAGES, protocolMessages);
rmRequestContext.put(RMConstant.SEQUENCE_REFERENCE, this);
// set up method invocation context
requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND,
props);
@@ -324,12 +322,20 @@
Map<String, Object> wsrmReqCtx = new HashMap<String, Object>();
wsrmReqCtx.put(RMConstant.ONE_WAY_OPERATION, false);
this.getBindingProvider().getRequestContext().put(RMConstant.REQUEST_CONTEXT,
wsrmReqCtx);
- sendMessage(RMConstant.CLOSE_SEQUENCE_WSA_ACTION,
wsrmConstants.getCloseSequenceQName());
+ List msgs = new LinkedList();
+ msgs.add(wsrmConstants.getCloseSequenceQName());
+ sendMessage(RMConstant.CLOSE_SEQUENCE_WSA_ACTION,
wsrmConstants.getCloseSequenceQName(), msgs);
}
public final void sendTerminateMessage()
{
- sendMessage(RMConstant.TERMINATE_SEQUENCE_WSA_ACTION,
wsrmConstants.getTerminateSequenceQName());
+ List msgs = new LinkedList();
+ msgs.add(wsrmConstants.getTerminateSequenceQName());
+ if (this.getInboundId() != null)
+ {
+ msgs.add(wsrmConstants.getSequenceAcknowledgementQName());
+ }
+ sendMessage(RMConstant.TERMINATE_SEQUENCE_WSA_ACTION,
wsrmConstants.getTerminateSequenceQName(), msgs);
}
public final void sendSequenceAcknowledgementMessage()
@@ -338,7 +344,9 @@
wsrmReqCtx.put(RMConstant.ONE_WAY_OPERATION, true);
this.getBindingProvider().getRequestContext().put(RMConstant.REQUEST_CONTEXT,
wsrmReqCtx);
ackRequested(false);
- sendMessage(RMConstant.SEQUENCE_ACKNOWLEDGEMENT_WSA_ACTION,
wsrmConstants.getSequenceAcknowledgementQName());
+ List msgs = new LinkedList();
+ msgs.add(wsrmConstants.getSequenceAcknowledgementQName());
+ sendMessage(RMConstant.SEQUENCE_ACKNOWLEDGEMENT_WSA_ACTION,
wsrmConstants.getSequenceAcknowledgementQName(), msgs);
}
public final void setBehavior(RMIncompleteSequenceBehavior behavior)
Show replies by date