From 57ecb121b2cb79bbb16c5ed9a5630de6a69616c3 Mon Sep 17 00:00:00 2001 From: Simon Ebner Date: Tue, 6 May 2014 16:14:21 +0200 Subject: [PATCH] improved return values ... --- .../src/main/java/ch/psi/fda/rest/ExecutionEngine.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ch.psi.fda/src/main/java/ch/psi/fda/rest/ExecutionEngine.java b/ch.psi.fda/src/main/java/ch/psi/fda/rest/ExecutionEngine.java index 09c913a..ee56621 100644 --- a/ch.psi.fda/src/main/java/ch/psi/fda/rest/ExecutionEngine.java +++ b/ch.psi.fda/src/main/java/ch/psi/fda/rest/ExecutionEngine.java @@ -33,6 +33,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import javax.inject.Inject; +import javax.ws.rs.WebApplicationException; import ch.psi.fda.edescriptor.EDescriptor; import ch.psi.jcae.ChannelService; @@ -100,19 +101,23 @@ public class ExecutionEngine { logger.info("Terminate TrackingId: "+trackingId); if(!erequests.containsKey(trackingId)){ - throw new IllegalArgumentException("There is no request for tracking id "+trackingId); + throw new WebApplicationException("There is no request for tracking id "+trackingId, 404); } final JobEntry f = erequests.get(trackingId); f.getFuture().cancel(true); f.getJob().stop(); + try{ f.getFuture().get(10, TimeUnit.SECONDS); } catch(CancellationException | InterruptedException | ExecutionException | TimeoutException e){ // Nothing to be done here + throw new WebApplicationException("Unable to terminate job"); } + + erequests.remove(trackingId); } public boolean isActive(String trackingId) {