StreamPumper threads are not interrupted when main thread is interrupted.
This piece of code seems to miss an outputThread.interrupt().
if (outputThread != null) { log.trace("Joining output thread {}...", outputThread); try { outputThread.join(); outputThread = null; } catch (InterruptedException e) { // ignore } }
This cause threads to be blocked until the process dies. Or it is necessary to call several time interrupt with some delay in order to really cause the thread to be interrupted.
StreamPumper threads are not interrupted when main thread is interrupted.
This piece of code seems to miss an outputThread.interrupt().
if (outputThread != null) { log.trace("Joining output thread {}...", outputThread); try { outputThread.join(); outputThread = null; } catch (InterruptedException e) { // ignore } }This cause threads to be blocked until the process dies. Or it is necessary to call several time interrupt with some delay in order to really cause the thread to be interrupted.