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 2018/01/30 20:31:41 UTC
svn commit: r1822697 -
/uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/HttpWorkerThread.java
Author: cwiklik
Date: Tue Jan 30 20:31:41 2018
New Revision: 1822697
URL: http://svn.apache.org/viewvc?rev=1822697&view=rev
Log:
UIMA-5700 modified to handle new property -DExitOnProcessFailure. It controls if the jvm exits when process() fails. The default is to call exit(). If it is false, the process continues despite failure.
Modified:
uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/HttpWorkerThread.java
Modified: uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/HttpWorkerThread.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/HttpWorkerThread.java?rev=1822697&r1=1822696&r2=1822697&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/HttpWorkerThread.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/HttpWorkerThread.java Tue Jan 30 20:31:41 2018
@@ -56,6 +56,11 @@ public class HttpWorkerThread implements
new ConcurrentHashMap<String, IMetaCasTransaction>();
static AtomicInteger maxFrameworkFailures;
private int maxFrameworkErrors = 2; // default
+ // define what happens to this jvm when process() method fails.
+ // The default is to call exit() but user may override this and
+ // keep on running.
+ private final boolean exitOnProcessFailure;
+
public HttpWorkerThread(JobProcessComponent component, DuccHttpClient httpClient,
Object processorInstance, CountDownLatch workerThreadCount,
CountDownLatch threadReadyCount, Map<String, IMetaCasTransaction> transactionMap,
@@ -68,6 +73,16 @@ public class HttpWorkerThread implements
this.transactionMap = transactionMap;
HttpWorkerThread.maxFrameworkFailures = maxFrameworkFailures;
maxFrameworkErrors = maxFrameworkFailures.get();
+ String exitProperty = System.getProperty("ExitOnProcessFailure");
+ if ( exitProperty == null || exitProperty.trim().toLowerCase().equals("true")) {
+ exitOnProcessFailure = true;
+ } else {
+ if ( exitProperty.trim().toLowerCase().equals("false") ) {
+ exitOnProcessFailure = false;
+ } else {
+ throw new IllegalArgumentException("Invalid value for property ExitOnProcessFailure. Should be [true/false] but is "+exitProperty);
+ }
+ }
}
public IMetaCasTransaction getWork(HttpPost postMethod, int major, int minor) throws Exception {
@@ -383,7 +398,7 @@ public class HttpWorkerThread implements
}
logger.info("run", null,"Thread:"+Thread.currentThread().getId()+" sent END for WI:"+wid);
- if ( workItemFailed ) {
+ if ( exitOnProcessFailure && workItemFailed ) {
if ( wid != null ) {
logger.warn("run", null, "Worker thread exiting due to error while processing WI:"+wid);
} else {