Author: gatfora
Date: Thu Apr 26 02:57:46 2007
New Revision: 532688

URL: http://svn.apache.org/viewvc?view=rev&rev=532688
Log:
Avoid deadlock between Invoker and InvokerWorker when dealing with a 2-way 
message.  Deadlock is caused by RMDBean and InvokerBean taken in different 
orders.

Modified:
    
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/InvokerWorker.java

Modified: 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/InvokerWorker.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/InvokerWorker.java?view=diff&rev=532688&r1=532687&r2=532688
==============================================================================
--- 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/InvokerWorker.java
 (original)
+++ 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/InvokerWorker.java
 Thu Apr 26 02:57:46 2007
@@ -65,6 +65,8 @@
                                        
                        //starting a transaction for the invocation work.
                        transaction = storageManager.getTransaction();
+                       // Lock the RMD Bean just to avoid deadlocks
+                       SandeshaUtil.getRMDBeanFromSequenceId(storageManager, 
invokerBean.getSequenceID());
                        // Depending on the transaction  support, the service 
will be invoked only once. 
                        // Therefore we delete the invoker bean and message 
now, ahead of time
                        invokerBeanMgr.delete(messageContextKey);



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

Reply via email to