You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2016/04/05 17:02:02 UTC

svn commit: r1737845 - /uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManagerStats.java

Author: degenaro
Date: Tue Apr  5 15:02:01 2016
New Revision: 1737845

URL: http://svn.apache.org/viewvc?rev=1737845&view=rev
Log:
UIMA-4880 DUCC Job Driver (JD) doesn't terminate when fewer than expected work-items found

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManagerStats.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManagerStats.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManagerStats.java?rev=1737845&r1=1737844&r2=1737845&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManagerStats.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManagerStats.java Tue Apr  5 15:02:01 2016
@@ -22,7 +22,14 @@ import java.util.concurrent.ConcurrentHa
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.uima.ducc.container.common.MessageBuffer;
+import org.apache.uima.ducc.container.common.logger.IComponent;
+import org.apache.uima.ducc.container.common.logger.ILogger;
+import org.apache.uima.ducc.container.common.logger.Logger;
+
 public class CasManagerStats {
+
+	private static Logger logger = Logger.getLogger(CasManagerStats.class, IComponent.Id.JD.name());
 	
 	public enum RetryReason { ProcessPreempt, ProcessVolunteered, ProcessDown, NodeDown, UserErrorRetry, TimeoutRetry };
 	
@@ -53,14 +60,26 @@ public class CasManagerStats {
 	// 2. CR provided work items have all been processed &&
 	// 3. number of processed work items < total number specified by user?
 	public boolean isPremature() {
+		String location = "isPremature";
 		boolean retVal = false;
-		if(isSeenAll()) {
-			if(crGets.get() == getEnded()) {
-				if(crGets.get() != crTotal.get()) {
-					retVal = true;
+		if(isSeenAll()) {	// no more work items in CR
+			if(crGets.get() > 0) {	// at least one work item fetched from CR
+				if(crGets.get() == getEnded()) {	// all work items fetched from CR have been processed
+					if(crGets.get() < crTotal.get()) {	// work items processed less than total specified by user
+						retVal = true;
+					}
 				}
 			}
 		}
+		if(retVal) {
+			MessageBuffer mb = new MessageBuffer();
+			mb.append("seenAll:"+seenAll.get());
+			mb.append("crGets:"+crGets.get());
+			mb.append("crTotal:"+crTotal.get());
+			mb.append("endSuccess:"+endSuccess.get());
+			mb.append("endFailure:"+endFailure.get());
+			logger.debug(location, ILogger.null_id, mb.toString());
+		}
 		return retVal;
 	}