You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by ga...@apache.org on 2007/04/26 11:57:47 UTC

svn commit: r532688 - /webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/InvokerWorker.java

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: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org