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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to