Don't use a separate thread in the launcher to call app's main method
Using a separate thread to call the application's main method is unnecessary – the context class loader of the current thread can be updated instead – and makes exception and exit code handling more complicated than it needs to be. This commit updates the Launcher so that it calls the main method runner using the current (main) thread. As a result, any exception that's thrown will be caught by the JVM and result in a non-zero exit code being returned from the process. Closes gh-5922
This commit is contained in:
parent
7fb545d26c
commit
e561cc1997
|
@ -100,10 +100,8 @@ public abstract class Launcher {
|
|||
protected void launch(String[] args, String mainClass, ClassLoader classLoader)
|
||||
throws Exception {
|
||||
Runnable runner = createMainMethodRunner(mainClass, args, classLoader);
|
||||
Thread runnerThread = new Thread(runner);
|
||||
runnerThread.setContextClassLoader(classLoader);
|
||||
runnerThread.setName(Thread.currentThread().getName());
|
||||
runnerThread.start();
|
||||
Thread.currentThread().setContextClassLoader(classLoader);
|
||||
runner.run();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue