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 2014/12/11 15:20:16 UTC

svn commit: r1644649 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-container/src: main/java/org/apache/uima/ducc/container/common/ main/java/org/apache/uima/ducc/container/common/files/ main/java/org/apache/uima/ducc/container/common/files/json/ main/ja...

Author: degenaro
Date: Thu Dec 11 14:20:16 2014
New Revision: 1644649

URL: http://svn.apache.org/r1644649
Log:
UIMA-4069 DUCC Job Driver (JD) system classpath

support for work items tab

Added:
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/MetaCasHelper.java   (with props)
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestWiStateFile.java   (with props)
Removed:
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/IOHelper.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/file/
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestJson.java
Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/FlagsExtendedHelper.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriver.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverHelper.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionAck.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGet.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/MessageHandler.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/RemoteWorkerIdentity.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/user/jd/test/helper/TestJdContainerErrorHandlerRandomRetry.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/FlagsExtendedHelper.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/FlagsExtendedHelper.java?rev=1644649&r1=1644648&r2=1644649&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/FlagsExtendedHelper.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/FlagsExtendedHelper.java Thu Dec 11 14:20:16 2014
@@ -18,6 +18,8 @@
 */
 package org.apache.uima.ducc.container.common;
 
+import java.io.File;
+
 import org.apache.uima.ducc.common.container.FlagsHelper;
 import org.apache.uima.ducc.container.common.logger.IComponent;
 import org.apache.uima.ducc.container.common.logger.ILogger;
@@ -53,4 +55,20 @@ public class FlagsExtendedHelper extends
 		return retVal;
 	}
 	
+	public String getLogDirectory() {
+		StringBuffer sb = new StringBuffer();
+		String jobDirectory = getJobDirectory();
+		if(jobDirectory != null) {
+			sb.append(jobDirectory);
+			if(!jobDirectory.endsWith(File.separator)) {
+				sb.append(File.separator);
+			}
+		}
+		String jobId = getJobId();
+		if(jobId != null) {
+			sb.append(jobId);
+			sb.append(File.separator);
+		}
+		return sb.toString();
+	}
 }

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/MetaCasHelper.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/MetaCasHelper.java?rev=1644649&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/MetaCasHelper.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/MetaCasHelper.java Thu Dec 11 14:20:16 2014
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+*/
+package org.apache.uima.ducc.container.common;
+
+import org.apache.uima.ducc.container.net.iface.IMetaCas;
+
+public class MetaCasHelper {
+
+	private IMetaCas metaCas = null;
+	
+	public MetaCasHelper(IMetaCas metaCas) {
+		setMetaCas(metaCas);
+	}
+	
+	private void setMetaCas(IMetaCas value) {
+		metaCas = value;
+	}
+	
+	public int getSystemKey() {
+		int retVal = -1;
+		try {
+			retVal = Integer.parseInt(metaCas.getSystemKey());
+		}
+		catch(Exception e) {
+			e.printStackTrace();
+		}
+		return retVal;
+	}
+}

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/MetaCasHelper.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java?rev=1644649&r1=1644648&r2=1644649&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java Thu Dec 11 14:20:16 2014
@@ -21,6 +21,9 @@ package org.apache.uima.ducc.container.c
 public class Standardize {
 
 	public enum Label {
+		isKillJob,
+		isKillProcess,
+		isKillWorkItem,
 		current,
 		request,
 		result,

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriver.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriver.java?rev=1644649&r1=1644648&r2=1644649&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriver.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriver.java Thu Dec 11 14:20:16 2014
@@ -20,6 +20,8 @@ package org.apache.uima.ducc.container.j
 
 import java.util.concurrent.ConcurrentHashMap;
 
+import org.apache.uima.ducc.common.jd.files.workitem.IWorkItemStateKeeper;
+import org.apache.uima.ducc.common.jd.files.workitem.WorkItemStateKeeper;
 import org.apache.uima.ducc.container.common.FlagsExtendedHelper;
 import org.apache.uima.ducc.container.common.MessageBuffer;
 import org.apache.uima.ducc.container.common.Standardize;
@@ -68,6 +70,8 @@ public class JobDriver {
 	private IMessageHandler mh = null; // new MessageHandler();
 	private DdManager ddManager = null;
 	
+	private IWorkItemStateKeeper wisk = null;
+	
 	private JdState jdState = null;
 	
 	private JobDriver() throws JobDriverException {
@@ -82,6 +86,7 @@ public class JobDriver {
 			jobId = feh.getJobId();
 			map = new ConcurrentHashMap<IRemoteWorkerIdentity, IWorkItem>();
 			wis = new WorkItemStatistics();
+			wisk = new WorkItemStateKeeper(IComponent.Id.JD.name(), feh.getLogDirectory());
 			cm = new CasManager();
 			pjdeh = new ProxyJobDriverErrorHandler();
 			ddManager = new DdManager();
@@ -121,6 +126,10 @@ public class JobDriver {
 		return ddManager;
 	}
 	
+	public IWorkItemStateKeeper getWorkItemStateKeeper() {
+		return wisk;
+	}
+	
 	public JdState getJdState() {
 		synchronized(jdState) {
 			return jdState;

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverHelper.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverHelper.java?rev=1644649&r1=1644648&r2=1644649&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverHelper.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverHelper.java Thu Dec 11 14:20:16 2014
@@ -42,8 +42,8 @@ public class JobDriverHelper {
 		return instance;
 	}
 	
-	public ArrayList<IWorkItemInfo> getActiveWotrkItemInfo() {
-		String location = "getActiveWotrkItemInfo";
+	public ArrayList<IWorkItemInfo> getActiveWorkItemInfo() {
+		String location = "getActiveWorkItemInfo";
 		ArrayList<IWorkItemInfo> list = new ArrayList<IWorkItemInfo>();
 		JobDriver jd = JobDriver.getInstance();
 		ConcurrentHashMap<IRemoteWorkerIdentity, IWorkItem> map = jd.getMap();

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionAck.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/ActionAck.java?rev=1644649&r1=1644648&r2=1644649&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionAck.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionAck.java Thu Dec 11 14:20:16 2014
@@ -18,7 +18,9 @@
 */
 package org.apache.uima.ducc.container.jd.fsm.wi;
 
+import org.apache.uima.ducc.common.jd.files.workitem.IWorkItemStateKeeper;
 import org.apache.uima.ducc.container.common.MessageBuffer;
+import org.apache.uima.ducc.container.common.MetaCasHelper;
 import org.apache.uima.ducc.container.common.Standardize;
 import org.apache.uima.ducc.container.common.fsm.iface.IAction;
 import org.apache.uima.ducc.container.common.logger.IComponent;
@@ -52,7 +54,15 @@ public class ActionAck implements IActio
 			//
 			IMetaCas metaCas = wi.getMetaCas();
 			//
+			JobDriver jd = JobDriver.getInstance();
+			IWorkItemStateKeeper wisk = jd.getWorkItemStateKeeper();
+			MetaCasHelper metaCasHelper = new MetaCasHelper(metaCas);
+			//
 			if(metaCas != null) {
+				//
+				int seqNo = metaCasHelper.getSystemKey();
+				wisk.operating(seqNo);
+				//
 				wi.setTodAck();
 				MessageBuffer mb = new MessageBuffer();
 				mb.append(Standardize.Label.transNo.get()+trans.getTransactionId().toString());

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.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/ActionEnd.java?rev=1644649&r1=1644648&r2=1644649&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java Thu Dec 11 14:20:16 2014
@@ -18,13 +18,16 @@
 */
 package org.apache.uima.ducc.container.jd.fsm.wi;
 
+import org.apache.uima.ducc.common.jd.files.workitem.IWorkItemStateKeeper;
 import org.apache.uima.ducc.container.common.MessageBuffer;
+import org.apache.uima.ducc.container.common.MetaCasHelper;
 import org.apache.uima.ducc.container.common.Standardize;
 import org.apache.uima.ducc.container.common.fsm.iface.IAction;
 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;
 import org.apache.uima.ducc.container.jd.JobDriver;
+import org.apache.uima.ducc.container.jd.JobDriverException;
 import org.apache.uima.ducc.container.jd.cas.CasManager;
 import org.apache.uima.ducc.container.jd.cas.CasManagerStats.RetryReason;
 import org.apache.uima.ducc.container.jd.classload.ProxyJobDriverDirective;
@@ -105,6 +108,50 @@ public class ActionEnd implements IActio
 		}
 	}
 	
+	private void handleException(IActionData actionData) throws JobDriverException {
+		String location = "handleException";
+		IWorkItem wi = actionData.getWorkItem();
+		IMetaCasTransaction trans = actionData.getMetaCasTransaction();
+		IRemoteWorkerIdentity rwi = new RemoteWorkerIdentity(trans);
+		IMetaCas metaCas = wi.getMetaCas();
+		JobDriver jd = JobDriver.getInstance();
+		CasManager cm = jd.getCasManager();
+		//
+		IWorkItemStateKeeper wisk = jd.getWorkItemStateKeeper();
+		MetaCasHelper metaCasHelper = new MetaCasHelper(metaCas);
+		//
+		int seqNo = metaCasHelper.getSystemKey();
+		Object exception = metaCas.getUserSpaceException();
+		//
+		Object cas = metaCas.getUserSpaceCas();
+		ProxyJobDriverErrorHandler pjdeh = jd.getProxyJobDriverErrorHandler();
+		ProxyJobDriverDirective pjdd = pjdeh.handle(cas, exception);
+		if(pjdd != null) {
+			MessageBuffer mb = new MessageBuffer();
+			mb.append(Standardize.Label.isKillJob.get()+pjdd.isKillJob());
+			mb.append(Standardize.Label.isKillProcess.get()+pjdd.isKillProcess());
+			mb.append(Standardize.Label.isKillWorkItem.get()+pjdd.isKillWorkItem());
+			logger.info(location, ILogger.null_id, mb.toString());
+			if(pjdd.isKillJob()) {
+				wisk.error(seqNo);
+				killWorkItem(cm, wi, trans, metaCas, rwi);
+				killJob(cm, wi, trans, metaCas, rwi);
+			}
+			else if(pjdd.isKillWorkItem()) {
+				wisk.error(seqNo);
+				killWorkItem(cm, wi, trans, metaCas, rwi);
+			}
+			else {
+				wisk.retry(seqNo);
+				retryWorkItem(cm, wi, trans, metaCas, rwi);
+			}
+		}
+		else {
+			wisk.error(seqNo);
+			killWorkItem(cm, wi, trans, metaCas, rwi);
+		}
+	}
+	
 	@Override
 	public void engage(Object objectData) {
 		String location = "engage";
@@ -118,33 +165,23 @@ public class ActionEnd implements IActio
 			JobDriver jd = JobDriver.getInstance();
 			CasManager cm = jd.getCasManager();
 			//
+			IWorkItemStateKeeper wisk = jd.getWorkItemStateKeeper();
+			MetaCasHelper metaCasHelper = new MetaCasHelper(metaCas);
+			//
 			if(metaCas != null) {
+				int seqNo = metaCasHelper.getSystemKey();
 				Object exception = metaCas.getUserSpaceException();
 				if(exception != null) {
-					Object cas = metaCas.getUserSpaceCas();
-					ProxyJobDriverErrorHandler pjdeh = jd.getProxyJobDriverErrorHandler();
-					ProxyJobDriverDirective pjdd = pjdeh.handle(cas, exception);
-					if(pjdd != null) {
-						if(pjdd.isKillJob()) {
-							killJob(cm, wi, trans, metaCas, rwi);
-						}
-						if(pjdd.isKillWorkItem()) {
-							killWorkItem(cm, wi, trans, metaCas, rwi);
-						}
-						else {
-							retryWorkItem(cm, wi, trans, metaCas, rwi);
-						}
-					}
-					else {
-						killWorkItem(cm, wi, trans, metaCas, rwi);
-					}
+					handleException(actionData);
 				}
 				else {
+					wisk.ended(seqNo);
 					successWorkItem(cm, wi, trans, metaCas, rwi);
 				}
 				wi.resetTods();
 			}
-			else {MessageBuffer mb = new MessageBuffer();
+			else {
+				MessageBuffer mb = new MessageBuffer();
 				mb.append("No CAS found for processing");
 				logger.info(location, ILogger.null_id, mb.toString());
 			}

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGet.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/ActionGet.java?rev=1644649&r1=1644648&r2=1644649&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGet.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGet.java Thu Dec 11 14:20:16 2014
@@ -18,7 +18,9 @@
 */
 package org.apache.uima.ducc.container.jd.fsm.wi;
 
+import org.apache.uima.ducc.common.jd.files.workitem.IWorkItemStateKeeper;
 import org.apache.uima.ducc.container.common.MessageBuffer;
+import org.apache.uima.ducc.container.common.MetaCasHelper;
 import org.apache.uima.ducc.container.common.Standardize;
 import org.apache.uima.ducc.container.common.fsm.iface.IAction;
 import org.apache.uima.ducc.container.common.fsm.iface.IEvent;
@@ -60,10 +62,20 @@ public class ActionGet implements IActio
 			CasManager cm = jd.getCasManager();
 			IMetaCas metaCas = cm.getMetaCas();
 			trans.setMetaCas(metaCas);
+			IWorkItemStateKeeper wisk = jd.getWorkItemStateKeeper();
+			MetaCasHelper metaCasHelper = new MetaCasHelper(metaCas);
 			//
 			IEvent event = null;
 			//
 			if(metaCas != null) {
+				int seqNo = metaCasHelper.getSystemKey();
+				String wiId = metaCas.getUserKey();
+				String node = rwi.getNodeAddress();
+				String pid = ""+rwi.getPid();
+				String tid = ""+rwi.getTid();
+				wisk.start(seqNo, wiId, node, pid, tid);
+				wisk.queued(seqNo);
+				//
 				wi.resetTods();
 				wi.setTodGet();
 				event = WiFsm.CAS_Available;

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/MessageHandler.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/MessageHandler.java?rev=1644649&r1=1644648&r2=1644649&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/MessageHandler.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/MessageHandler.java Thu Dec 11 14:20:16 2014
@@ -104,7 +104,7 @@ public class MessageHandler implements I
 			oi.setWorkItemRunningMillisMin(rwis.getMillisMin());
 			oi.setWorkItemRunningMillisMax(rwis.getMillisMax());
 			oi.setWorkItemTodMostRecentStart(rwis.getTodMostRecentStart());
-			oi.setActiveWorkItemInfo(jdh.getActiveWotrkItemInfo());
+			oi.setActiveWorkItemInfo(jdh.getActiveWorkItemInfo());
 			oi.setJdState(jd.getJdState().name());
 			MessageBuffer mb = new MessageBuffer();
 			mb.append(Standardize.Label.jdState.get()+oi.getJdState());

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/RemoteWorkerIdentity.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/RemoteWorkerIdentity.java?rev=1644649&r1=1644648&r2=1644649&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/RemoteWorkerIdentity.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/RemoteWorkerIdentity.java Thu Dec 11 14:20:16 2014
@@ -46,7 +46,7 @@ public class RemoteWorkerIdentity implem
 	
 	public RemoteWorkerIdentity(String nodeName, String nodeAddress, int pid, int tid) {
 		setNodeName(nodeName);
-		setNodeAddress(nodeName);
+		setNodeAddress(nodeAddress);
 		setPid(pid);
 		setTid(tid);
 	}

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestWiStateFile.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestWiStateFile.java?rev=1644649&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestWiStateFile.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestWiStateFile.java Thu Dec 11 14:20:16 2014
@@ -0,0 +1,117 @@
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+*/
+package org.apache.uima.ducc.container.jd.test;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.File;
+import java.net.URL;
+
+import org.apache.uima.ducc.common.jd.files.workitem.IWorkItemStateKeeper;
+import org.apache.uima.ducc.common.jd.files.workitem.IWorkItemStateReader;
+import org.apache.uima.ducc.common.jd.files.workitem.WorkItemStateKeeper;
+import org.apache.uima.ducc.common.jd.files.workitem.WorkItemStateReader;
+import org.junit.Test;
+
+public class TestWiStateFile extends ATest {
+	
+	private void delete(File directory) {
+		try {
+			for(File file : directory.listFiles()) {
+				debug("delete: "+file.getName());
+				file.delete();
+			}
+			debug("delete: "+directory.getName());
+			directory.delete();
+		}
+		catch(Exception e) {
+			//e.printStackTrace();
+		}
+	}
+	
+	@Test
+	public void test_01() {
+		if(isDisabled(this.getClass().getName())) {
+			return;
+		}
+		try {
+			URL url = this.getClass().getResource("/");
+			File root = new File(url.getFile());
+			String name = root.getAbsolutePath();
+			debug(name);
+			assertTrue(root.isDirectory());
+			String nameWorking = name+File.separator+"working";
+			File working = new File(nameWorking);
+			delete(working);
+			working.mkdir();
+			String component = "JD.test";
+			String directory = working.getAbsolutePath();
+			debug(directory);
+			IWorkItemStateKeeper wisk = new WorkItemStateKeeper(component, directory);
+			//
+			// int seqNo, String wiId, String node, String pid, String tid
+			//
+			wisk.start(0, "u.0", "n.0", "p.0", "t.0");
+			//
+			wisk.start(1, "u.1", "n.1", "p.1", "t.1");
+			wisk.queued(1);
+			//
+			wisk.start(2, "u.2", "n.2", "p.2", "t.2");
+			wisk.queued(2);
+			wisk.operating(2);
+			//
+			wisk.start(3, "u.3", "n.3", "p.3", "t.3");
+			wisk.queued(3);
+			wisk.operating(3);
+			wisk.ended(3);
+			//
+			wisk.start(4, "u.4", "n.4", "p.4", "t.4");
+			wisk.queued(4);
+			wisk.operating(4);
+			wisk.error(4);
+			//
+			wisk.start(5, "u.5", "n.5", "p.5", "t.5");
+			wisk.queued(5);
+			wisk.operating(5);
+			wisk.retry(5);
+			//
+			String user = "self";
+			long version = 1;
+			IWorkItemStateReader wisr = new WorkItemStateReader(component, directory, user, version);		
+			int size = wisr.getMap().size();
+			debug("size="+size);
+			assertTrue(size > 0);
+			//
+			wisk.zip();
+			//
+			wisr = new WorkItemStateReader(component, directory, user, version);
+			size = wisr.getMap().size();
+			assertTrue(size > 0);
+			//
+			delete(working);
+		}
+		catch(Exception e) {
+			e.printStackTrace();
+			fail("Exception");
+		}
+	}
+	
+}

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestWiStateFile.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/user/jd/test/helper/TestJdContainerErrorHandlerRandomRetry.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/user/jd/test/helper/TestJdContainerErrorHandlerRandomRetry.java?rev=1644649&r1=1644648&r2=1644649&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/user/jd/test/helper/TestJdContainerErrorHandlerRandomRetry.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/user/jd/test/helper/TestJdContainerErrorHandlerRandomRetry.java Thu Dec 11 14:20:16 2014
@@ -31,12 +31,13 @@ public class TestJdContainerErrorHandler
 	@Override
 	public IJdUserDirective handle(String serializedCAS, Exception e) {
 		JdUserDirective jdUserDirective = new JdUserDirective();
-		jdUserDirective.setKillJob();
-		jdUserDirective.setKillProcess();
+		jdUserDirective.resetKillJob();
+		jdUserDirective.resetKillProcess();
 		jdUserDirective.resetKillWorkItem();
 		if(random.nextBoolean()) {
 			jdUserDirective.setKillWorkItem();
 		}
+		System.out.println("killWorkItem="+jdUserDirective.isKillWorkItem());
 		return jdUserDirective;
 	}