Author: mlovett
Date: Fri Nov 24 08:48:05 2006
New Revision: 478911

URL: http://svn.apache.org/viewvc?view=rev&rev=478911
Log:
Andy's deadlockAck patch from SANDESHA2-49

Modified:
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/TerminateManager.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/InvokerWorker.java

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java?view=diff&rev=478911&r1=478910&r2=478911
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
 Fri Nov 24 08:48:05 2006
@@ -148,12 +148,11 @@
                        throw fault;
                }
 
-               // updating the last activated time of the sequence.
-               SequenceManager.updateLastActivatedTime(sequencePropertyKey, 
storageManager);
-
                SenderBean input = new SenderBean();
                input.setSend(true);
                input.setReSend(true);
+               
input.setMessageType(Sandesha2Constants.MessageTypes.APPLICATION);
+               input.setInternalSequenceID(internalSequenceId);
                Collection retransmitterEntriesOfSequence = 
retransmitterMgr.find(input);
 
                ArrayList ackedMessagesList = new ArrayList();
@@ -175,6 +174,9 @@
                                ackedMessagesList.add(new Long(messageNo));
                        }
                }
+
+               // updating the last activated time of the sequence.
+               SequenceManager.updateLastActivatedTime(sequencePropertyKey, 
storageManager);
 
                while (nackIterator.hasNext()) {
                        Nack nack = (Nack) nackIterator.next();

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/TerminateManager.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/TerminateManager.java?view=diff&rev=478911&r1=478910&r2=478911
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/TerminateManager.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/TerminateManager.java
 Fri Nov 24 08:48:05 2006
@@ -142,9 +142,18 @@
         */
        private static void 
completeTerminationOfReceivingSide(ConfigurationContext configContext, String 
sequencePropertyKey,String sequenceId,
                        StorageManager storageManager) throws SandeshaException 
{
-               NextMsgBeanMgr nextMsgBeanMgr = 
storageManager.getNextMsgBeanMgr();
 
+               // removing the HighestInMessage entry.
+               String highestInMessageKey = 
SandeshaUtil.getSequenceProperty(sequencePropertyKey,
+                               
Sandesha2Constants.SequenceProperties.HIGHEST_IN_MSG_KEY, storageManager);
+               if (highestInMessageKey != null) {
+                       
storageManager.removeMessageContext(highestInMessageKey);
+               }
+
+               removeReceivingSideProperties(configContext, 
sequencePropertyKey, sequenceId, storageManager);
+               
                // removing nextMsgMgr entries
+               NextMsgBeanMgr nextMsgBeanMgr = 
storageManager.getNextMsgBeanMgr();
                NextMsgBean findNextMsgBean = new NextMsgBean();
                findNextMsgBean.setSequenceID(sequenceId);
                Collection collection = nextMsgBeanMgr.find(findNextMsgBean);
@@ -154,14 +163,6 @@
                         nextMsgBeanMgr.delete(nextMsgBean.getSequenceID());
                }
 
-               // removing the HighestInMessage entry.
-               String highestInMessageKey = 
SandeshaUtil.getSequenceProperty(sequencePropertyKey,
-                               
Sandesha2Constants.SequenceProperties.HIGHEST_IN_MSG_KEY, storageManager);
-               if (highestInMessageKey != null) {
-                       
storageManager.removeMessageContext(highestInMessageKey);
-               }
-
-               removeReceivingSideProperties(configContext, 
sequencePropertyKey, sequenceId, storageManager);
        }
 
        private static void removeReceivingSideProperties(ConfigurationContext 
configContext, String sequencePropertyKey, 

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/InvokerWorker.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/InvokerWorker.java?view=diff&rev=478911&r1=478910&r2=478911
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/InvokerWorker.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/InvokerWorker.java
 Fri Nov 24 08:48:05 2006
@@ -120,10 +120,7 @@
                        invokerBeanMgr.delete(messageContextKey);
 
                        // removing the corresponding message context as well.
-                       MessageContext msgCtx = 
storageManager.retrieveMessageContext(messageContextKey, configurationContext);
-                       if (msgCtx != null) {
-                               
storageManager.removeMessageContext(messageContextKey);
-                       }
+                       storageManager.removeMessageContext(messageContextKey);
                        
                        if (rmMsg.getMessageType() == 
Sandesha2Constants.MessageTypes.APPLICATION) {
                                Sequence sequence = (Sequence) rmMsg
@@ -134,7 +131,7 @@
                                        
TerminateManager.cleanReceivingSideAfterInvocation(configurationContext, 
sequencePropertyKey, sequenceId, storageManager);
                                        // exit from current iteration. (since 
an entry
                                        // was removed)
-                                       
+                                       if(log.isDebugEnabled()) 
log.debug("Exit: InvokerWorker::run Last message return");                      
               
                                        return;
                                }
                        }



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

Reply via email to