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 2016/04/21 21:27:50 UTC

svn commit: r1740389 - /uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/HttpWorkerThread.java

Author: cwiklik
Date: Thu Apr 21 19:27:49 2016
New Revision: 1740389

URL: http://svn.apache.org/viewvc?rev=1740389&view=rev
Log:
UIMA-4904 after SIGTERM the JP should stop communicating with a JD

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/HttpWorkerThread.java

Modified: uima/sandbox/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/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/HttpWorkerThread.java?rev=1740389&r1=1740388&r2=1740389&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/HttpWorkerThread.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/HttpWorkerThread.java Thu Apr 21 19:27:49 2016
@@ -285,6 +285,11 @@ public class HttpWorkerThread implements
 							// to the JD. The actual serialized stack trace is wrapped in
 							// RuntimeException->AnalysisEngineException.message
 							workItemFailed = true;
+							// if WI processing fails while the service changes states to !Running
+							// ignore results and terminate this thread.
+							if ( !duccComponent.isRunning() ) {
+								break;
+							}
 							IMetaCas mc = transaction.getMetaCas();
 							
 							// Fetch serialized exception as a blob
@@ -296,6 +301,12 @@ public class HttpWorkerThread implements
 							logger.info("run", null, "Work item processing failed - returning serialized exception to the JD");
 						} catch( Exception ee) {
 							workItemFailed = true;
+							// if WI processing fails while the service changes states to !Running
+							// ignore results and terminate this thread.
+							if ( !duccComponent.isRunning() ) {
+								logger.info("run", null, "Work item processing failed - terminating thread - ignore any AE errors that may happen beyond this point");
+								break;
+							}
 							// Serialize exception for the JD.
 							ByteArrayOutputStream baos = new ByteArrayOutputStream();
 						    ObjectOutputStream oos = new ObjectOutputStream( baos );
@@ -313,6 +324,12 @@ public class HttpWorkerThread implements
 						TransactionId tid = new TransactionId(major, minor++);
 						transaction.setTransactionId(tid);
 
+						// if WI processing fails while the service changes states to !Running
+						// ignore results and terminate this thread.
+						if ( !duccComponent.isRunning() ) {
+							break;
+						}
+
 						httpClient.execute(transaction, postMethod); // Work Item Processed - End
                     	String wid = null;
                     	try {