Commit e088ecd1 authored by Dave Syer's avatar Dave Syer

Re-order shutdown hook in BootRunTask

parent b5d65bfc
...@@ -30,7 +30,6 @@ import org.gradle.process.ExecResult; ...@@ -30,7 +30,6 @@ import org.gradle.process.ExecResult;
import org.gradle.process.internal.DefaultJavaExecAction; import org.gradle.process.internal.DefaultJavaExecAction;
import org.gradle.process.internal.ExecHandle; import org.gradle.process.internal.ExecHandle;
import org.springframework.boot.loader.tools.FileUtils; import org.springframework.boot.loader.tools.FileUtils;
import org.springframework.boot.loader.tools.SignalUtils;
import org.springframework.util.ReflectionUtils; import org.springframework.util.ReflectionUtils;
/** /**
...@@ -73,17 +72,22 @@ public class BootRunTask extends JavaExec { ...@@ -73,17 +72,22 @@ public class BootRunTask extends JavaExec {
DefaultJavaExecAction action = (DefaultJavaExecAction) builder.get(this); DefaultJavaExecAction action = (DefaultJavaExecAction) builder.get(this);
setMain(getMain()); setMain(getMain());
final ExecHandle execHandle = action.build(); final ExecHandle execHandle = action.build();
ExecResult execResult = execHandle.start().waitForFinish(); try {
if (!isIgnoreExitValue()) { Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
execResult.assertNormalExitValue();
}
SignalUtils.attachSignalHandler(new Runnable() {
@Override @Override
public void run() { public void run() {
getLogger().info("Aborting java sub-process"); getLogger().info("Aborting java sub-process");
execHandle.abort(); execHandle.abort();
} }
}); }));
} catch (Exception e) {
getLogger().warn("Could not attach shutdown hook (child process may be orphaned)");
}
ExecResult execResult = execHandle.start().waitForFinish();
if (!isIgnoreExitValue()) {
execResult.assertNormalExitValue();
}
return execResult; return execResult;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment