You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by su...@apache.org on 2007/09/24 09:31:07 UTC
svn commit: r578683 -
/webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
Author: sumedha
Date: Mon Sep 24 00:31:06 2007
New Revision: 578683
URL: http://svn.apache.org/viewvc?rev=578683&view=rev
Log:
For a given sequenceId,messageno there can be more than one record. This will result retransmitterMgr.findUnique to fail.
Modified:
webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
Modified: webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java?rev=578683&r1=578682&r2=578683&view=diff
==============================================================================
--- webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java (original)
+++ webservices/sandesha/branches/sandesha2/java/1_3/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java Mon Sep 24 00:31:06 2007
@@ -18,6 +18,7 @@
package org.apache.sandesha2.msgprocessors;
import java.util.Iterator;
+import java.util.List;
import javax.xml.namespace.QName;
@@ -189,35 +190,42 @@
matcher.setMessageNumber(messageNo);
- SenderBean retransmitterBean = retransmitterMgr.findUnique(matcher);
- if (retransmitterBean != null) {
- // Check we haven't got an Ack for a message that hasn't been sent yet !
- if (retransmitterBean.getSentCount() == 0) {
- FaultManager.makeInvalidAcknowledgementFault(rmMsgCtx, sequenceAck, ackRange,
- storageManager, piggybackedAck);
- if (log.isDebugEnabled())
- log.debug("Exit: AcknowledgementProcessor::processAckHeader, Invalid Ack");
- return;
- }
-
- String storageKey = retransmitterBean.getMessageContextRefKey();
-
- boolean syncResponseNeeded = false;
- if (Sandesha2Constants.SPEC_VERSIONS.v1_0.equals(rmVersion) && anonReplyTo) {
- MessageContext applicationMessage = storageManager.retrieveMessageContext(storageKey, configCtx);
- AxisOperation operation = applicationMessage.getAxisOperation();
- if(operation!= null) {
- int mep = operation.getAxisSpecificMEPConstant();
- syncResponseNeeded = (mep == WSDLConstants.MEP_CONSTANT_OUT_IN);
- }
- }
-
- if (!syncResponseNeeded) {
- // removing the application message from the storage.
- retransmitterMgr.delete(retransmitterBean.getMessageID());
- storageManager.removeMessageContext(storageKey);
- }
- }
+ List retransmitterBeans = retransmitterMgr.find(matcher);
+ if (! retransmitterBeans.isEmpty()){
+ Iterator retransmitterBeansItr = retransmitterBeans.iterator();
+ while (retransmitterBeansItr.hasNext()) {
+ SenderBean retransmitterBean = (SenderBean) retransmitterBeansItr.next();
+ if (retransmitterBean != null) {
+ // Check we haven't got an Ack for a message that hasn't been sent yet !
+ if (retransmitterBean.getSentCount() == 0) {
+ FaultManager.makeInvalidAcknowledgementFault(rmMsgCtx, sequenceAck, ackRange,
+ storageManager, piggybackedAck);
+ if (log.isDebugEnabled())
+ log.debug("Exit: AcknowledgementProcessor::processAckHeader, Invalid Ack");
+ return;
+ }
+
+ String storageKey = retransmitterBean.getMessageContextRefKey();
+
+ boolean syncResponseNeeded = false;
+ if (Sandesha2Constants.SPEC_VERSIONS.v1_0.equals(rmVersion) && anonReplyTo) {
+ MessageContext applicationMessage = storageManager.retrieveMessageContext(storageKey, configCtx);
+ AxisOperation operation = applicationMessage.getAxisOperation();
+ if(operation!= null) {
+ int mep = operation.getAxisSpecificMEPConstant();
+ syncResponseNeeded = (mep == WSDLConstants.MEP_CONSTANT_OUT_IN);
+ }
+ }
+
+ if (!syncResponseNeeded) {
+ // removing the application message from the storage.
+ retransmitterMgr.delete(retransmitterBean.getMessageID());
+ storageManager.removeMessageContext(storageKey);
+ }
+ }
+ }
+ }//end of if (!retransmitterBeans.isEmpty()){
+
}//end for
}//end for
} //end while
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org