"Parent-proc" process starts "Child-proc" process and spins in a loop of
reading data from Child-proc's standard out via a call to
InputStreamReader.read().
Child-proc starts "Grand-child-proc" process and exits.
Grand-child-proc gets in a sleep for 30 seconds and exits when the sleep
is over.
Parent-proc expects to return from InputStreamReader.read() to the
Child-proc's standard out stream when Child-proc ends.
But, the InputStreamReader.read() call does not return until
Grand-child-proc ends even though Child-proc has already ended.