Author: mlovett
Date: Fri Dec  1 05:54:33 2006
New Revision: 481246

URL: http://svn.apache.org/viewvc?view=rev&rev=481246
Log:
deadlock5.patch for SANDESHA2-49

Modified:
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java?view=diff&rev=481246&r1=481245&r2=481246
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java
 Fri Dec  1 05:54:33 2006
@@ -124,7 +124,7 @@
                //This will allow Sandesha2 to consider both of following 
senarios equally.
                //      1. A message being sent by the Sender thread.
                //  2. A message being sent as a reply to an MakeConnection.
-               SenderWorker worker = new SenderWorker 
(configurationContext,senderBean.getMessageID());
+               SenderWorker worker = new SenderWorker 
(configurationContext,senderBean);
                
worker.setTransportOut(rmMsgCtx.getMessageContext().getTransportOut());
                
                worker.run();

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java?view=diff&rev=481246&r1=481245&r2=481246
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java 
(original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java 
Fri Dec  1 05:54:33 2006
@@ -179,9 +179,7 @@
                                        continue;
                                }
 
-                               String messageId = senderBean.getMessageID();
-
-                               String toAddress = senderBean.getToAddress();
+        String toAddress = senderBean.getToAddress();
                                if (toAddress != null) {
                                        boolean unsendableAddress = false;
 
@@ -209,7 +207,7 @@
                                // work Id is used to define the piece of work 
that will be
                                // assigned to the Worker thread,
                                // to handle this Sender bean.
-                               String workId = messageId;
+                               String workId = senderBean.getMessageID();
 
                                // check weather the bean is already assigned 
to a worker.
                                if (lock.isWorkPresent(workId)) {
@@ -226,9 +224,9 @@
                                transaction.commit();
 
                                // start a worker which will work on this 
messages.
-                               SenderWorker worker = new SenderWorker(context, 
messageId);
+                               SenderWorker worker = new SenderWorker(context, 
senderBean);
                                worker.setLock(lock);
-                               worker.setWorkId(messageId);
+                               worker.setWorkId(workId);
                                threadPool.execute(worker);
 
                                // adding the workId to the lock after 
assigning it to a thread

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=481246&r1=481245&r2=481246
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java
 Fri Dec  1 05:54:33 2006
@@ -36,14 +36,15 @@
 
 public class SenderWorker extends SandeshaWorker implements Runnable {
 
+  private static final Log log = LogFactory.getLog(SenderWorker.class);
+
        private ConfigurationContext configurationContext = null;
-       private String messageId = null;
-       private static final Log log = LogFactory.getLog(SenderWorker.class);
+       private SenderBean senderBean = null;
        private TransportOutDescription transportOut = null;
        
-       public SenderWorker (ConfigurationContext configurationContext, String 
messageId) {
+       public SenderWorker (ConfigurationContext configurationContext, 
SenderBean senderBean) {
                this.configurationContext = configurationContext;
-               this.messageId = messageId;
+               this.senderBean = senderBean;
        }
        
        public void setTransportOut (TransportOutDescription transportOut) {
@@ -63,15 +64,14 @@
                        
                        transaction = storageManager.getTransaction();
 
-                       SenderBean senderBean = 
senderBeanMgr.retrieve(messageId);
-                       if (senderBean==null) {
-                               //the work is not present. May be invalid now. 
So should return.
-                               if (log.isDebugEnabled())
-                                       
log.debug(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.workNotPresent,workId));
-                               return;
-                       }
                        String key = senderBean.getMessageContextRefKey();
                        MessageContext msgCtx = 
storageManager.retrieveMessageContext(key, configurationContext);
+      
+      if (msgCtx == null) {
+        // This sender bean has already been processed
+        return;
+      }
+      
                        
msgCtx.setProperty(Sandesha2Constants.WITHIN_TRANSACTION, 
Sandesha2Constants.VALUE_TRUE);
 
                        RMMsgContext rmMsgCtx = 
MsgInitializer.initializeMessage(msgCtx);



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to