Просто быстрый вопрос о том, как параметры передаются в Java...
... if ((index = stdout.indexOf(pattern)) != -1) { tidy(stdout, index + pattern.length()); return true; } else if ((index = stderr.indexOf(pattern)) != -1) { tidy(stderr, index + pattern.length()); return true; ... private void tidy(StringBuffer buffer, int i) { logger.info("Truncating buffer: " + buffer); buffer = new StringBuffer(buffer.substring(i)); logger.info("Buffer now: " + buffer); }
В этом случае stdout и stderr (используемые в качестве параметров в tidy()) имеют свои значения, измененные на новый StringBuffer (buffer.substring(i))? Мое предположение заключается в том, что они будут, поскольку объектные переменные (указатели объектов) всегда передаются по значению?