У меня есть следующий фрагмент кода:
Process proc = runtime.exec(command);
errorGobbler = new ErrorStreamGobbler(proc.getErrorStream(), logErrors, mdcMap);
outputGobbler = new OutputStreamGobbler(proc.getInputStream(), mdcMap);
executor.execute(errorGobbler);
executor.execute(outputGobbler);
processExitCode = proc.waitFor();
, где гоблерами являются Runnable
s, которые используют BufferedReader
для чтения потоков ввода и ошибок выполняющегося процесса.Хотя это работает большую часть времени, я получаю случайное окно (около 2 минут или около того), где я получаю processExitCode
как 0, что указывает на нормальное завершение, но нет ничего в потоках ввода и ошибок - ничего даже не указыватьконец потока.
Как я уже говорил ранее, это работает большую часть времени, но этот сбой происходит время от времени - и я совершенно озадачен.Есть идеи?
Тряпки