RFR: 8004317 TestLibrary.getUnusedRandomPort() fails intermittently, but exception not reported

Stuart Marks stuart.marks at oracle.com
Wed Dec 5 23:54:30 UTC 2012

OK, looks better, more explicit so that we can find out why this is failing.

There's still a subtle issue in the reporting though. Consider if on attempt N 
the ServerSocket call gets a valid port but it's one of the reserved ports. 
Then, unusedRandomPort will be >= 0 and isReservedPort() will be true, so we'll 
get the "INFO" message.

Now on attempt N+1 suppose ServerSocket throws an exception. We'll get the 
exception stack trace, but then unusedRandomPort will still have its previous 
value, and we'll get the INFO message again, but spuriously this time. I hate 
to ask you to update this again, but as it stands I think the output will be 
quite confusing.

I think setting unusedRandomPort back to -1 at the top of the loop should fix it.

You need me to push this for you? I can drop in this change before I push, if 
you're OK with me doing this.


On 12/5/12 12:51 PM, Jim Gish wrote:
> Here's a new version for your consideration :-)
> http://cr.openjdk.java.net/~jgish/Bug8004317-TestLibrary-getUnusedRandomPort-Failure/
> <http://cr.openjdk.java.net/%7Ejgish/Bug8004317-TestLibrary-getUnusedRandomPort-Failure/>
> Thanks,
>     Jim
> On 12/05/2012 02:45 PM, Stuart Marks wrote:
>> On 12/5/12 8:41 AM, Jim Gish wrote:
>>> BTW printStackTrace() prints to standard error by default -- that's why I don't
>>> explicitly have it in there.
>> Oh yes, so it does. Sorry, I was confused.
>> s'marks
> --
> Jim Gish | Consulting Member of Technical Staff | +1.781.442.0304
> Oracle Java Platform Group | Core Libraries Team
> 35 Network Drive
> Burlington, MA 01803
> jim.gish at oracle.com

More information about the core-libs-dev mailing list