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/01/03 13:40:13 UTC

svn commit: r1649195 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd: ./ fault/injector/ fsm/wi/ log/ mh/ mh/iface/ mh/impl/ timeout/

Author: degenaro
Date: Sat Jan  3 12:40:13 2015
New Revision: 1649195

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

Handle FSM error gracefully (should never happen!)

Added:
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/ITimeoutTask.java   (with props)
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/TimeoutTask.java   (with props)
Modified:
    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/fault/injector/FaultInjector.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/WiFsm.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/log/ErrorLogger.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/iface/IOperatingInfo.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/impl/OperatingInfo.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/TimeoutManager.java

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=1649195&r1=1649194&r2=1649195&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 Sat Jan  3 12:40:13 2015
@@ -33,6 +33,7 @@ import org.apache.uima.ducc.container.jd
 import org.apache.uima.ducc.container.jd.classload.ProxyJobDriverErrorHandler;
 import org.apache.uima.ducc.container.jd.mh.IMessageHandler;
 import org.apache.uima.ducc.container.jd.mh.MessageHandler;
+import org.apache.uima.ducc.container.jd.mh.iface.IOperatingInfo.CompletionType;
 import org.apache.uima.ducc.container.jd.mh.iface.remote.IRemotePid;
 import org.apache.uima.ducc.container.jd.mh.iface.remote.IRemoteWorkerThread;
 import org.apache.uima.ducc.container.jd.wi.IProcessStatistics;
@@ -81,6 +82,9 @@ public class JobDriver {
 	
 	private JdState jdState = null;
 	
+	private boolean killJob = false;
+	private CompletionType completionType = CompletionType.Normal;
+	
 	private JobDriver() throws JobDriverException {
 		initialize();
 	}
@@ -191,4 +195,17 @@ public class JobDriver {
 		mb.append(Standardize.Label.result.get()+result);
 		logger.trace(location, ILogger.null_id, mb.toString());
 	}
+	
+	public void killJob(CompletionType value) {
+		killJob = true;
+		completionType = value;
+	}
+	
+	public boolean isKillJob() {
+		return killJob;
+	}
+	
+	public CompletionType getCompletionType() {
+		return completionType;
+	}
 }

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fault/injector/FaultInjector.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fault/injector/FaultInjector.java?rev=1649195&r1=1649194&r2=1649195&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fault/injector/FaultInjector.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fault/injector/FaultInjector.java Sat Jan  3 12:40:13 2015
@@ -36,6 +36,8 @@ public class FaultInjector {
 	
 	private static ArrayList<String> list = new ArrayList< String>();
 	
+	private enum Type { Once, Forever };
+	
 	private static int seed = 1;
 	private static int pctFail = 25;
 	private static Random random = new Random(seed);
@@ -57,7 +59,7 @@ public class FaultInjector {
 		return list.contains(id);
 	}
 	 
-	private static boolean missing(String location, IActionData actionData) {
+	private static boolean missing(String location, IActionData actionData, Type type) {
 		boolean fault = false;
 		if(enabled) {
 			if(isRegistered(actionData)) {
@@ -65,7 +67,13 @@ public class FaultInjector {
 			}
 			else {
 				if(random.nextInt(100) < pctFail) {
-					register(actionData);
+					switch(type) {
+					case Once:
+						break;
+					case Forever:
+						register(actionData);
+						break;
+					}
 					fault = true;
 				}
 			}
@@ -79,11 +87,16 @@ public class FaultInjector {
 
 	public static boolean missingAck(IActionData actionData) {
 		String location = "missingAck";
-		return missing(location, actionData);
+		Type type = Type.Once;
+		if(random.nextBoolean()) {
+			type = Type.Forever;
+		};
+		return missing(location, actionData, type);
 	}
 	
 	public static boolean missingEnd(IActionData actionData) {
 		String location = "missingEnd";
-		return missing(location, actionData);
+		Type type = Type.Once;
+		return missing(location, actionData, type);
 	}
 }

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/WiFsm.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/WiFsm.java?rev=1649195&r1=1649194&r2=1649195&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/WiFsm.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/WiFsm.java Sat Jan  3 12:40:13 2015
@@ -30,7 +30,10 @@ import org.apache.uima.ducc.container.co
 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.log.ErrorLogger;
 import org.apache.uima.ducc.container.jd.log.LoggerHelper;
+import org.apache.uima.ducc.container.jd.mh.iface.IOperatingInfo.CompletionType;
 
 public class WiFsm extends Fsm {
 
@@ -121,6 +124,17 @@ public class WiFsm extends Fsm {
 	}
 	
 	@Override
+	public void transition(IEvent event, Object actionData) throws FsmException {
+		try {
+			super.transition(event, actionData);
+		}
+		catch(Exception e) {
+			ErrorLogger.record(e);
+			JobDriver.getInstance().killJob(CompletionType.Exception);
+		}
+	}
+	
+	@Override
 	public void transitionLog(IEvent event, Object objectData) {
 		String location = "transition";
 		IActionData actionData = (IActionData) objectData;

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/log/ErrorLogger.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/log/ErrorLogger.java?rev=1649195&r1=1649194&r2=1649195&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/log/ErrorLogger.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/log/ErrorLogger.java Sat Jan  3 12:40:13 2015
@@ -29,4 +29,9 @@ public class ErrorLogger {
 		String location = "record";
 		logger.error(location, null, text);
 	}
+	
+	public static void record(Exception e) {
+		String location = "record";
+		logger.error(location, null, e);
+	}
 }

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=1649195&r1=1649194&r2=1649195&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 Sat Jan  3 12:40:13 2015
@@ -131,6 +131,10 @@ public class MessageHandler implements I
 			if(cms.isKillJob()) {
 				oi.setKillJob();
 			}
+			if(jd.isKillJob()) {
+				oi.setKillJob();
+				oi.setCompletionType(jd.getCompletionType());
+			}
 			oi.setWorkItemDispatcheds(cms.getDispatched());
 			oi.setWorkItemRetrys(cms.getNumberOfRetrys());
 			oi.setWorkItemPreemptions(cms.getNumberOfPreemptions());

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/iface/IOperatingInfo.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/iface/IOperatingInfo.java?rev=1649195&r1=1649194&r2=1649195&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/iface/IOperatingInfo.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/iface/IOperatingInfo.java Sat Jan  3 12:40:13 2015
@@ -23,6 +23,14 @@ import java.util.ArrayList;
 
 public interface IOperatingInfo extends Serializable {
 
+	public enum CompletionType {
+		Normal,
+		Exception
+	}
+	
+	public void setCompletionType(CompletionType value);
+	public CompletionType getCompletionType();
+	
 	public void setJobId(String value);
 	public String getJobId();
 

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/impl/OperatingInfo.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/impl/OperatingInfo.java?rev=1649195&r1=1649194&r2=1649195&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/impl/OperatingInfo.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/impl/OperatingInfo.java Sat Jan  3 12:40:13 2015
@@ -28,6 +28,8 @@ public class OperatingInfo implements IO
 	
 	private static final long serialVersionUID = 1L;
 
+	private CompletionType completionType = CompletionType.Normal;
+	
 	private String jobId = null;
 	
 	private String jpAe = null;
@@ -65,6 +67,16 @@ public class OperatingInfo implements IO
 	}
 	
 	@Override
+	public void setCompletionType(CompletionType value) {
+		completionType = value;
+	}
+
+	@Override
+	public CompletionType getCompletionType() {
+		return completionType;
+	}
+	
+	@Override
 	public void setJobId(String value) {
 		jobId = value;
 	}

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/ITimeoutTask.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/ITimeoutTask.java?rev=1649195&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/ITimeoutTask.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/ITimeoutTask.java Sat Jan  3 12:40:13 2015
@@ -0,0 +1,33 @@
+/*
+ * 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.timeout;
+
+import java.util.concurrent.Callable;
+
+import org.apache.uima.ducc.container.common.fsm.iface.IEvent;
+import org.apache.uima.ducc.container.common.fsm.iface.IFsm;
+import org.apache.uima.ducc.container.jd.fsm.wi.IActionData;
+
+public interface ITimeoutTask extends Callable<Object> {
+
+	public IFsm getFsm();
+	public IEvent getEvent();
+	public IActionData getActionData();
+	public long getDeadline();
+}

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/ITimeoutTask.java
------------------------------------------------------------------------------
    svn:eol-style = native

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

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/TimeoutManager.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/TimeoutManager.java?rev=1649195&r1=1649194&r2=1649195&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/TimeoutManager.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/TimeoutManager.java Sat Jan  3 12:40:13 2015
@@ -18,12 +18,23 @@
 */
 package org.apache.uima.ducc.container.jd.timeout;
 
+import java.util.concurrent.Callable;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.TimeUnit;
+
 import org.apache.uima.ducc.container.common.MessageBuffer;
+import org.apache.uima.ducc.container.common.fsm.iface.IEvent;
+import org.apache.uima.ducc.container.common.fsm.iface.IFsm;
 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.fsm.wi.IActionData;
+import org.apache.uima.ducc.container.jd.fsm.wi.WiFsm;
 import org.apache.uima.ducc.container.jd.log.LoggerHelper;
+import org.apache.uima.ducc.container.jd.wi.IWorkItem;
 
 public class TimeoutManager implements ITimeoutManager {
 
@@ -34,6 +45,13 @@ public class TimeoutManager implements I
 	public static TimeoutManager getInstance() {
 		return instance;
 	}
+	
+	private ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(5);
+	
+	private long ackTimeout= 60*1000;
+	
+	private ConcurrentHashMap<IFsm,ITimeoutTask> mapTask = new ConcurrentHashMap<IFsm,ITimeoutTask>();
+	private ConcurrentHashMap<IFsm,ScheduledFuture<?>> mapFuture = new ConcurrentHashMap<IFsm,ScheduledFuture<?>>();
 
 	@Override
 	public void pendingAck(IActionData actionData) {
@@ -41,6 +59,12 @@ public class TimeoutManager implements I
 		try {
 			MessageBuffer mb = LoggerHelper.getMessageBuffer(actionData);
 			logger.debug(location, ILogger.null_id, mb.toString());
+			IWorkItem wi = actionData.getWorkItem();
+			IFsm fsm = wi.getFsm();
+			IEvent event = WiFsm.Ack_Timer_Pop;
+			long deadline = System.currentTimeMillis()+ackTimeout;
+			ITimeoutTask timeoutTask = new TimeoutTask(fsm, event, actionData, deadline);
+			register(fsm, timeoutTask);
 		}
 		catch(Exception e) {
 			logger.error(location, ILogger.null_id, e);
@@ -82,5 +106,50 @@ public class TimeoutManager implements I
 			logger.error(location, ILogger.null_id, e);
 		}
 	}
+
+	private boolean wip = true;
+	
+	public void register(IFsm fsm, ITimeoutTask timeoutTask) {
+		String location = "register";
+		if(wip) {
+			return;
+		}
+		try {
+			mapTask.put(fsm, timeoutTask);
+			Callable<?> callable = timeoutTask;
+			long delay = timeoutTask.getDeadline() - System.currentTimeMillis();
+			TimeUnit timeUnit = TimeUnit.MILLISECONDS;
+			ScheduledFuture<?> scheduledFuture = scheduledExecutorService.schedule(callable, delay, timeUnit);
+			mapFuture.put(fsm, scheduledFuture);
+			//
+			IActionData actionData = timeoutTask.getActionData();
+			MessageBuffer mb = LoggerHelper.getMessageBuffer(actionData);
+			logger.info(location, ILogger.null_id, mb.toString());
+		}
+		catch(Exception e) {
+			logger.error(location, ILogger.null_id, e);
+		}
+	}
 	
+	public void unregister(IFsm fsm) {
+		String location = "unregister";
+		if(wip) {
+			return;
+		}
+		try {
+			ScheduledFuture<?> scheduledFuture = mapFuture.remove(fsm);
+			if(scheduledFuture != null) {
+				scheduledFuture.cancel(false);
+			}
+			ITimeoutTask timeoutTask = mapTask.remove(fsm);
+			if(timeoutTask != null) {
+				IActionData actionData = timeoutTask.getActionData();
+				MessageBuffer mb = LoggerHelper.getMessageBuffer(actionData);
+				logger.info(location, ILogger.null_id, mb.toString());
+			}
+		}	
+		catch(Exception e) {
+			logger.error(location, ILogger.null_id, e);
+		}
+	}
 }

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/TimeoutTask.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/TimeoutTask.java?rev=1649195&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/TimeoutTask.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/TimeoutTask.java Sat Jan  3 12:40:13 2015
@@ -0,0 +1,94 @@
+/*
+ * 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.timeout;
+
+import org.apache.uima.ducc.container.common.MessageBuffer;
+import org.apache.uima.ducc.container.common.Standardize;
+import org.apache.uima.ducc.container.common.fsm.iface.IEvent;
+import org.apache.uima.ducc.container.common.fsm.iface.IFsm;
+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.fsm.wi.IActionData;
+import org.apache.uima.ducc.container.jd.log.LoggerHelper;
+
+public class TimeoutTask implements ITimeoutTask {
+
+	private static Logger logger = Logger.getLogger(TimeoutTask.class, IComponent.Id.JD.name());
+	
+	private IFsm fsm = null;
+	private IEvent event = null;
+	private IActionData actionData = null;
+	private long deadline = 0;
+	
+	public TimeoutTask(IFsm fsm, IEvent event, IActionData actionData, long deadline) {
+		setFsm(fsm);
+		setEvent(event);
+		setActionData(actionData);
+		setDeadline(deadline);
+	}
+
+	private void setFsm(IFsm value) {
+		fsm = value;
+	}
+	
+	@Override
+	public IFsm getFsm() {
+		return fsm;
+	}
+	
+	private void setEvent(IEvent value) {
+		event = value;
+	}
+	
+	@Override
+	public IEvent getEvent() {
+		return event;
+	}
+	
+	private void setActionData(IActionData value) {
+		actionData = value;
+	}
+	
+	@Override
+	public IActionData getActionData() {
+		return actionData;
+	}
+	
+	private void setDeadline(long value) {
+		deadline = value;
+	}
+	
+	@Override
+	public long getDeadline() {
+		return deadline;
+	}
+	
+	@Override
+	public Object call() throws Exception {
+		String location = "call";
+		MessageBuffer mb = LoggerHelper.getMessageBuffer(actionData);
+		mb.append(Standardize.Label.event.get()+event.getName());
+		logger.warn(location, ILogger.null_id, mb.toString());
+		TimeoutManager.getInstance().unregister(fsm);
+		fsm.transition(event, actionData);
+		return null;
+	}
+
+}

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/TimeoutTask.java
------------------------------------------------------------------------------
    svn:eol-style = native

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