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]