External executor service
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 2 Feb 2018 18:37:11 +0000 (19:37 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 2 Feb 2018 18:37:11 +0000 (19:37 +0100)
org.argeo.slc.core/src/org/argeo/slc/core/execution/http/RunnerServlet.java

index 5bbf243fb9c77e17ffc524f1bac9e2683c8fafc1..c3f22ccb4398f0a756790338d9ee4e95c97ee8fe 100644 (file)
@@ -16,7 +16,6 @@ import java.util.Map;
 import java.util.UUID;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 
 import javax.jcr.Node;
@@ -57,10 +56,10 @@ public class RunnerServlet extends HttpServlet {
        private BundleContext bc;
        private ExecutorService executor;
 
-       public RunnerServlet(BundleContext bc, Path baseDir) {
+       public RunnerServlet(BundleContext bc, Path baseDir, ExecutorService executor) {
                this.bc = bc;
                this.baseDir = baseDir;
-               this.executor = Executors.newFixedThreadPool(20);
+               this.executor = executor;
        }
 
        @Override
@@ -177,10 +176,10 @@ public class RunnerServlet extends HttpServlet {
                if (log.isTraceEnabled())
                        log.trace(session.getUserID() + " " + workgroup + " " + flowName);
 
-               try {
+               try (ServiceChannel serviceChannel = new ServiceChannel(Channels.newChannel(in), Channels.newChannel(out),
+                               executor)) {
                        resp.setHeader("Content-Type", "application/json");
-                       ServiceChannel serviceChannel = new ServiceChannel(Channels.newChannel(in), Channels.newChannel(out),
-                                       executor);
+
                        Callable<Integer> task;
                        if (ext.equals("api")) {
                                String uri = Files.readAllLines(baseDir.resolve(flowName)).get(0);