You know it's been too long since you've blogged when you can't remember how to login. Since my post in January, however, I've sold my house in Denver, sold my cars, packed up the wife and kids and moved to Brooklyn. I accepted a full-time, permanent position in Manhattan almost 3 months ago and I've been terribly busy transitioning jobs and cities. Like most bloggers, I've been meaning to get back in the saddle for a while now but, you know how it is... Anyway! I don't normally spawn external processes from Java so I'm sure I'm missing some subtle points to this apparently fine art. While running tests to make sure that these processes correctly execute and return the expected data, I noticed that one call to a certain script file would hang intermittently. If I ran the script manully in a shell window, it would execute and terminate in less than a second. But from Java it would sit there for minutes before I finally killed. At first I thought maybe it was a bug in this utility I'm executing from the script. But since it runs fine in cmd.exe, that couldn't be it. So I eventually make my way to the Bug Parade where I find this entry.
Now to save you a little time, here's the skinny: When using Process.waitFor() sometimes it will block indefinitely until you read the data off the two InputStreams, i.e., the Process's stdout and stderr. Now, according to Sun engineers, this is not a bug despite the fact that the documentation makes no mention of this particular "feature." Now the astute observer might notice that this bug was filed and closed in 1999. So I guess my main question is, why isn't this better documented if Sun decided this was acceptable behavior 8 years ago?
So, is this really (still) a bug for am I just dumb?