Author: parsonsd
Date: Wed Oct 6 15:59:00 2010
New Revision: 1005095
URL: http://svn.apache.org/viewvc?rev=1005095&view=rev
Log:
PiggyBacked acks sent on closeSeq & terminateSeq with mustUnderstand set to
true breaks RSP spec. Fixed so that all piggybacked acks are sent with
mustUnderstand set to false.
Modified:
axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.java
axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
Modified:
axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.java?rev=1005095&r1=1005094&r2=1005095&view=diff
==============================================================================
---
axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.java
(original)
+++
axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.java
Wed Oct 6 15:59:00 2010
@@ -95,25 +95,18 @@ public class CloseSequenceProcessor exte
}
rmBean.setClosed(true);
- Iterator<SequenceAcknowledgement> sequenceAckIter = null;
+
+ RMMsgContext closeSeqResponseRMMsg =
RMMsgCreator.createCloseSeqResponseMsg(rmMsgCtx, rmBean);
+ MessageContext closeSequenceResponseMsg =
closeSeqResponseRMMsg.getMessageContext();
if(rmBean instanceof RMDBean){
storageManager.getRMDBeanMgr().update((RMDBean)rmBean);
- RMMsgContext ackRMMsgCtx =
AcknowledgementManager.generateAckMessage(rmMsgCtx, (RMDBean)rmBean,
sequenceId, storageManager, true);
- // adding the ack part(s) to the envelope.
- sequenceAckIter =
ackRMMsgCtx.getSequenceAcknowledgements();
+ //Piggyback an ack for the sequence being closed on the
closeSequenceResponse
+ RMMsgCreator.addAckMessage(closeSeqResponseRMMsg,
sequenceId, (RMDBean)rmBean, false, true);
}
else{
storageManager.getRMSBeanMgr().update((RMSBean)rmBean);
}
- RMMsgContext closeSeqResponseRMMsg =
RMMsgCreator.createCloseSeqResponseMsg(rmMsgCtx, rmBean);
- MessageContext closeSequenceResponseMsg =
closeSeqResponseRMMsg.getMessageContext();
-
- while (sequenceAckIter!=null && sequenceAckIter.hasNext()) {
- SequenceAcknowledgement sequenceAcknowledgement =
(SequenceAcknowledgement) sequenceAckIter.next();
-
closeSeqResponseRMMsg.addSequenceAcknowledgement(sequenceAcknowledgement);
- }
-
closeSeqResponseRMMsg.setFlow(MessageContext.OUT_FLOW);
closeSeqResponseRMMsg.setProperty(Sandesha2Constants.APPLICATION_PROCESSING_DONE,
"true");
closeSequenceResponseMsg.setResponseWritten(true);
Modified:
axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java?rev=1005095&r1=1005094&r2=1005095&view=diff
==============================================================================
---
axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
(original)
+++
axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
Wed Oct 6 15:59:00 2010
@@ -328,15 +328,8 @@ public class TerminateSeqMsgProcessor ex
MessageContext outMessage =
terminateSeqResponseRMMsg.getMessageContext();
if(rmBean instanceof RMDBean){
- RMMsgContext ackRMMessage =
AcknowledgementManager.generateAckMessage(terminateSeqRMMsg, (RMDBean)rmBean,
- sequenceId, storageManager, true);
-
- // copy over the ack parts
- Iterator<SequenceAcknowledgement> iter =
ackRMMessage.getSequenceAcknowledgements();
- while (iter.hasNext()) {
- SequenceAcknowledgement seqAck =
(SequenceAcknowledgement) iter.next();
-
terminateSeqResponseRMMsg.addSequenceAcknowledgement(seqAck);
- }
+ //Piggyback an ack for the sequence being terminated on
the terminateSequenceResponse
+ RMMsgCreator.addAckMessage(terminateSeqResponseRMMsg,
sequenceId, (RMDBean)rmBean, false, true);
}
terminateSeqResponseRMMsg.addSOAPEnvelope();