Any idea why this was left out originally? I'm not sure, but "because someone was on crack" does come to mind.
More seriously, there were a number of corners cut in getting the first couple releases of Java out the door. A
lot of code got written in a short time, and some mistakes were made. Most were patched up nicely in subsequent releases. What's unusual her is not that the original API was underdeveloped, but that the problem has remained as long as it has. I'm guessing the reasons for this are (a) providing a
good solution (as opposed to a hack) is more complex than it appears, and (b) not that many users have actually found themselves in situations where it was a problem. Not that that's much consolation to the few who
do have a problem.