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 2015/06/12 12:46:41 UTC
svn commit: r1685060 -
/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEndTimeout.java
Author: degenaro
Date: Fri Jun 12 10:46:41 2015
New Revision: 1685060
URL: http://svn.apache.org/r1685060
Log:
UIMA-4459 DUCC Job Driver (JD) does not advance state to JdState.Ended when final work item is a time-out
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEndTimeout.java
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEndTimeout.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEndTimeout.java?rev=1685060&r1=1685059&r2=1685060&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEndTimeout.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEndTimeout.java Fri Jun 12 10:46:41 2015
@@ -38,6 +38,7 @@ import org.apache.uima.ducc.container.jd
import org.apache.uima.ducc.container.jd.wi.IWorkItem;
import org.apache.uima.ducc.container.jd.wi.WiTracker;
import org.apache.uima.ducc.container.net.iface.IMetaCas;
+import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction.JdState;
public class ActionEndTimeout extends Action implements IAction {
@@ -48,12 +49,40 @@ public class ActionEndTimeout extends Ac
return ActionEndTimeout.class.getName();
}
+ private void jdExhausted(IActionData actionData) {
+ String location = "jdExhausted";
+ JobDriver jd = JobDriver.getInstance();
+ switch(jd.getJdState()) {
+ case Ended:
+ break;
+ default:
+ jd.advanceJdState(JdState.Ended);
+ MessageBuffer mb = LoggerHelper.getMessageBuffer(actionData);
+ mb.append(Standardize.Label.jdState.get()+JobDriver.getInstance().getJdState());
+ logger.info(location, ILogger.null_id, mb.toString());
+ JobDriverHelper.getInstance().summarize();
+ break;
+ }
+ }
+
+ private void checkEnded(IActionData actionData, CasManager cm) {
+ String location = "checkEnded";
+ int remainder = cm.getCasManagerStats().getUnfinishedWorkCount();
+ MessageBuffer mb = LoggerHelper.getMessageBuffer(actionData);
+ mb.append(Standardize.Label.remainder.get()+remainder);
+ logger.debug(location, ILogger.null_id, mb.toString());
+ if(remainder <= 0) {
+ jdExhausted(actionData);
+ }
+ }
+
private void killWorkItem(IActionData actionData, CasManager cm, IMetaCas metaCas, IWorkItem wi) {
String location = "killWorkItem";
MessageBuffer mb = LoggerHelper.getMessageBuffer(actionData);
logger.info(location, ILogger.null_id, mb.toString());
WiTracker.getInstance().unassign(wi);
cm.getCasManagerStats().incEndFailure();
+ checkEnded(actionData, cm);
}
private void killProcess(IActionData actionData, CasManager cm, IMetaCas metaCas, IWorkItem wi, DeallocateReason deallocateReason) {