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