diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/box/Jsprit.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/box/Jsprit.java index 818767f2..0ada8a96 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/box/Jsprit.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/box/Jsprit.java @@ -629,13 +629,21 @@ public class Jsprit { }); } if (es != null) { - Runtime.getRuntime().addShutdownHook(new Thread() { + final Thread hook = new Thread() { public void run() { if (!es.isShutdown()) { System.err.println("shutdowHook shuts down executorService"); es.shutdown(); } } + }; + Runtime.getRuntime().addShutdownHook(hook); + vra.addListener(new AlgorithmEndsListener() { + @Override + public void informAlgorithmEnds(VehicleRoutingProblem aProblem, + Collection aSolutions) { + Runtime.getRuntime().removeShutdownHook(hook); + } }); } }