You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2013/11/06 22:22:04 UTC
svn commit: r1539465 -
/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/handler/input/ProcessRequestHandler_impl.java
Author: cwiklik
Date: Wed Nov 6 21:22:04 2013
New Revision: 1539465
URL: http://svn.apache.org/r1539465
Log:
Modified to prevent semaphore from hanging process when controller is stopping
Modified:
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/handler/input/ProcessRequestHandler_impl.java
Modified: uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/handler/input/ProcessRequestHandler_impl.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/handler/input/ProcessRequestHandler_impl.java?rev=1539465&r1=1539464&r2=1539465&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/handler/input/ProcessRequestHandler_impl.java (original)
+++ uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/handler/input/ProcessRequestHandler_impl.java Wed Nov 6 21:22:04 2013
@@ -21,6 +21,7 @@ package org.apache.uima.aae.handler.inpu
import java.io.ByteArrayInputStream;
import java.util.concurrent.Semaphore;
+import java.util.concurrent.TimeUnit;
import org.apache.uima.UIMAFramework;
import org.apache.uima.aae.InProcessCache.CacheEntry;
@@ -554,9 +555,17 @@ public class ProcessRequestHandler_impl
try {
synchronized(lock) {
- if ( entry.getThreadCompletionSemaphore() != null) {
- entry.getThreadCompletionSemaphore().acquire();
- }
+ while( !getController().isStopped()) {
+ if ( entry.getThreadCompletionSemaphore() != null) {
+ boolean gotIt = entry.getThreadCompletionSemaphore().tryAcquire(500, TimeUnit.MILLISECONDS);
+ if ( gotIt ) {
+ break;
+ }
+ } else {
+ break;
+ }
+
+ }
}
} catch( InterruptedException ex) {
}