379116: start.jar fix to shutdown child processes with --exec. Remove finally block and replace with a shutdown hook in _exec if branch.
Change-Id: I85af53090a2797f433aca22276b413762999a477
diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/Main.java b/jetty-start/src/main/java/org/eclipse/jetty/start/Main.java
index 70fbe10..d4f503b 100644
--- a/jetty-start/src/main/java/org/eclipse/jetty/start/Main.java
+++ b/jetty-start/src/main/java/org/eclipse/jetty/start/Main.java
@@ -550,22 +550,25 @@
if (_exec)
{
CommandLineBuilder cmd = buildCommandLine(classpath,configuredXmls);
+
ProcessBuilder pbuilder = new ProcessBuilder(cmd.getArgs());
final Process process = pbuilder.start();
+ Runtime.getRuntime().addShutdownHook(new Thread()
+ {
+ @Override
+ public void run()
+ {
+ Config.debug("Destroying " + process);
+ process.destroy();
+ }
+ });
- try
- {
- copyInThread(process.getErrorStream(),System.err);
- copyInThread(process.getInputStream(),System.out);
- copyInThread(System.in,process.getOutputStream());
- monitor.setProcess(process);
- process.waitFor();
- }
- finally
- {
- Config.debug("Destroying " + process);
- process.destroy();
- }
+ copyInThread(process.getErrorStream(),System.err);
+ copyInThread(process.getInputStream(),System.out);
+ copyInThread(System.in,process.getOutputStream());
+ monitor.setProcess(process);
+ process.waitFor();
+
return;
}