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