The jester.Util.runCommand method first collects stdout
output from the sub-process and then collects stderr
output from the sub-process. This is problematic if
the stderr buffer from the sub-process becomes full
before any stdout output is available. If the
sub-process stderr buffer becomes full, the sub-process
will block on any threads submitting text the stderr
buffer. Because Jester is waiting on output in the
stdout buffer from the sub-process, it is essentially a
deadlock situation.
The patch modifies the jester.Util.runCommand method is
leverage a thread-aware top-level nested class to
collect stderr output from the sub-process at the same
time that the thread that invoked
jester.Util.runCommand is collecting stdout output from
the sub-process.
Patch for jester.Util.runCommand method