Честно, я всегда думал, что NOT NULL должен быть значением по умолчанию. ПУСТОЙ УКАЗАТЕЛЬ является нечетным особым случаем, и необходимо изложить доводы для него каждый раз, когда Вы используете его. Плюс он намного легче изменить столбец от NOT NULL до nullable, чем это должно пойти другим путем.
Просмотр документации Groovy для процесса , Я увидел, что есть метод takeProcessOutput (вывод OutputStream, ошибка OutputStream). Я попытался переписать ваш метод следующим образом, надеясь, что он будет неблокирующим:
def runCommand(command) {
def process = command.execute()
process.consumeProcessOutput(System.out, System.err)
println 'requested consume output' //hoping this will come out first
process.waitForOrKill(TIMEOUT_IN_MILLIS)
return process // use to get exit code et cetera
}
Когда я запустил его в Windows XP с командой 'dir', я получил следующий результат:
requested consume output
file1 file2 ...
Успех! :)