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

Stuart Marks stuart.marks at oracle.com
Wed Dec 5 00:06:44 UTC 2012

Hi Jim,

(Looks like you're cleaning up warnings along the way. I guess that's OK.)

Before printing the stack trace, there should be a message to stderr indicating 
where this stack trace is coming from. For example, "getUnusedRandomPort: 
caught exception". The stack trace should be printed to stderr as well, using 
something like ex.printStackTrace(System.err).

I think narrowing the catch to IOException is good, since that's the only 
exception case we really want to retry. I don't think it makes sense to mention 
IllegalArgumentException or SecurityException specifically in the comments 
though. Any exception other than IOException should fail-fast.

A message should also be printed if we decide to retry because the port is one 
of the "reserved" ports. This might provide an important clue to solving the 

(My hypothesis is that this routine fails relatively silently when, on its last 
retry, it successfully opens a reserved port. In this case ex will be null and 
we get the RuntimeException with no further explanation.)

It would also be helpful to print numTries each time around the loop so that we 
can see if it really is retrying that many times.

Regarding netstat, I think it's a good idea, but I'd suggest we work on it 
separately from this change. Instead, suppose we add a shell script test that's 
named so that it runs at the end of the jdk_rmi test target. This could just 
run netstat -a (or whatever) unconditionally. In fact, I could do that without 
even pushing any changes to the source code....


On 12/4/12 1:42 PM, Jim Gish wrote:
> OK -- how about a push then for now and with luck we might get some useful
> output in a day or two.
> Jim
> On 12/04/2012 04:22 PM, Alan Bateman wrote:
>> On 04/12/2012 21:10, Jim Gish wrote:
>>> :
>>> P.S. working on adding nestat -a output per Alan's suggestion.
>> BTW: I didn't mean you have to run with my comment, it's just that I assume
>> the issue that the Windows is out of dynamic ports. There is a registry
>> setting to change the range, and I think there is a netsh command to adjust
>> it too. If we can somehow capture the netstat output then it may confirm this.
>> -Alan.

More information about the core-libs-dev mailing list