JDK-6523983 : (process) Raise Windows pipe buffer size (win)
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.lang
  • Affected Version: 7
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: windows_2000
  • CPU: generic
  • Submitted: 2007-02-12
  • Updated: 2013-06-22
  • Resolved: 2007-06-22
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7
6u35Fixed 7 b15Fixed
Related Reports
Relates :  
Relates :  
Description
It is well-known that a program that calls Process.waitFor
without closing or draining the process output is subject
to deadlock if the process writes more data to its stdout or stderr
than fits into the OS pipe buffer which holds this data.
On Solaris or Linux, there is no control over the size of the
pipe buffer, and is, respectively 13k (!) and 4k.
On Windows, the application (JDK) has control over the size of 
the buffer when the subprocess is created, and currently a size of 512
is hard-coded.  We should probably raise that to either the Solaris or Linux
limit, both for process I/O throughput and for deadlock avoidance.

Comments
EVALUATION Can't think of any reason not to simply change 512 to at least 4096.
12-02-2007