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