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();