From aee10cf036029b69dc39b502b2e331d7558cbd1c Mon Sep 17 00:00:00 2001 From: Daniel Riquelme Date: Fri, 22 Jun 2018 05:04:30 -0400 Subject: [PATCH] Fix CTRL-C exception --- testing/agent/src/main/java/sbt/ForkMain.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/testing/agent/src/main/java/sbt/ForkMain.java b/testing/agent/src/main/java/sbt/ForkMain.java index a92d02506..f5549231e 100644 --- a/testing/agent/src/main/java/sbt/ForkMain.java +++ b/testing/agent/src/main/java/sbt/ForkMain.java @@ -258,9 +258,19 @@ final public class ForkMain { final Task[] tasks = runner.tasks(filteredTests.toArray(new TaskDef[filteredTests.size()])); logDebug(os, "Runner for " + framework.getClass().getName() + " produced " + tasks.length + " initial tasks for " + filteredTests.size() + " tests."); + Thread callDoneOnShutdown = new Thread() { + @Override + public void run() { + runner.done(); + } + }; + Runtime.getRuntime().addShutdownHook(callDoneOnShutdown); + runTestTasks(executor, tasks, loggers, os); runner.done(); + + Runtime.getRuntime().removeShutdownHook(callDoneOnShutdown); } write(os, ForkTags.Done); is.readObject();