Author: boisvert
Date: Tue Sep 29 23:46:33 2009
New Revision: 820127

URL: http://svn.apache.org/viewvc?rev=820127&view=rev
Log:
Prevent application-level deadlock due to ProcessDefReaper; can happen since 
the lock may queue readLock() requests after a pending writeLock() request

Modified:
    
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java

Modified: 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java?rev=820127&r1=820126&r2=820127&view=diff
==============================================================================
--- 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
 (original)
+++ 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
 Tue Sep 29 23:46:33 2009
@@ -448,7 +448,7 @@
             try {
                 while (true) {
                     Thread.sleep(pollingTime);
-                    _mngmtLock.writeLock().lockInterruptibly();
+                    if (!_mngmtLock.writeLock().tryLock(100L, 
TimeUnit.MILLISECONDS)) continue;
                     try { 
                         __log.debug("Kicking reaper, OProcess instances: " + 
OProcess.instanceCount);
                         // Copying the runnning process list to avoid 
synchronization


Reply via email to