ProcessBuilder support for pipelines

Martin Buchholz martinrb at
Wed Jul 29 18:39:12 UTC 2015

Curmudgeon Martin supports this change!

I'm a little surprised we can implement it without native code.


The below should probably be in its own paragraph.

+ * The {@link #startPipe startPipe} method can be invoked to create
+ * a pipeline of new processes that send the output of each process
+ * directly to the next process.  Each process has the attributes of
+ * its respective ProcessBuilder.


I continue to be opposed to throwing UOE.  But it seems I've lost that

+     * @throws  UnsupportedOperationException
+     *          If the operating system does not support the creation of


These statements are technically incorrect.

+     * The standard output of all processes except the first process
+     * are <i>null output streams</i>
+     * The standard input of all processes except the last process
+     * are <i>null input streams</i>.

What you mean is that getOutputStream etc return null streams, but that's
not what you say.


Should this mention standard error?

+     * @throws IllegalArgumentException any of the redirects except the
+     *          standard input of the first builder and the standard
output of
+     *          the last builder are not {@link Redirect#PIPE}.

More information about the core-libs-dev mailing list