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 ga...@apache.org on 2007/04/17 13:00:23 UTC

svn commit: r529558 - in /webservices/sandesha/trunk/java/src/org/apache/sandesha2: storage/inmemory/InMemorySenderBeanMgr.java workers/SenderWorker.java

Author: gatfora
Date: Tue Apr 17 04:00:20 2007
New Revision: 529558

URL: http://svn.apache.org/viewvc?view=rev&rev=529558
Log:
SenderBean not locked when updating the next retransmission time.  InMemorySenderBeanMgr can return a SenderBean which is not eligible for sending

Modified:
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/inmemory/InMemorySenderBeanMgr.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/inmemory/InMemorySenderBeanMgr.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/inmemory/InMemorySenderBeanMgr.java?view=diff&rev=529558&r1=529557&r2=529558
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/inmemory/InMemorySenderBeanMgr.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/inmemory/InMemorySenderBeanMgr.java Tue Apr 17 04:00:20 2007
@@ -90,6 +90,10 @@
 			if (bean.getSentCount() > 0 && !bean.isReSend())
 				continue; //Avoid re-sending messages that we should not resend
 			
+			// Check that the Send time has not been updated under another thread
+			if (!bean.match(matcher))
+				continue;
+			
 			if(result == null) {
 				result = bean;
 			} else if(result.getTimeToSend() > bean.getTimeToSend()) {

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java?view=diff&rev=529558&r1=529557&r2=529558
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java Tue Apr 17 04:00:20 2007
@@ -372,6 +372,9 @@
 	 */
 	private boolean updateMessage(RMMsgContext rmMsgContext, SenderBean senderBean, StorageManager storageManager) throws AxisFault {
 		
+		// Lock the message to enable retransmission update
+		senderBean = storageManager.getSenderBeanMgr().retrieve(senderBean.getMessageID());
+		
 		boolean continueSending = MessageRetransmissionAdjuster.adjustRetransmittion(
 				rmMsgContext, senderBean, rmMsgContext.getConfigurationContext(), storageManager);
 		if(!continueSending) return false;



---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org