private void setupIOStreams(final ByteArrayOutputStream o, final ByteArrayOutputStream e) { systemOut = new PrintStream(o); systemError = new PrintStream(e); if (forked) { if (!outputToFormatters) { if (!showOutput) { savedOut = System.out; savedErr = System.err; System.setOut(createEmptyStream()); System.setErr(createEmptyStream()); } } else { savedOut = System.out; savedErr = System.err; if (!showOutput) { System.setOut(systemOut); System.setErr(systemError); } else { System.setOut(createTeePrint(savedOut, systemOut)); System.setErr(createTeePrint(savedErr, systemError)); } perm = null; } } else { if (perm != null) { perm.setSecurityManager(); } } }