I've modified the implementation:
- Use LocateRegistry.createRegistry(0) where possible (it's not possible
in all places), rather then creating a ServerSocket, getting the port,
then closing it and returning the port number.
- Added a TestLibrary.getRegistryPort(Registry) method to get the port
number of the registry.
- Added java/rmi and sun/rmi back to the list of tests which must be run
in othervm mode.
- Added back othervm to the tests I removed it from.
- Fixed the AltSecurityManager test and removed it from the ProblemList.
Revised webrev can be found here:
http://cr.openjdk.java.net/~dmocek/7142596/webrev.01
Darryl
On 04/19/2012 03:50 AM, Alan Bateman wrote:
On 18/04/2012 21:39, Darryl Mocek wrote:
:
Brilliant! I didn't realize Registry.toString included the port
number. However, I did in fact find a way to get the port through
the API's (see below), although I think toString is more efficient.
I'm pretty sure I can get rid of the instanceof checks.
I don't have a strong opinion as to whether it uses toString or
depends on sun.rmi.server.RegistryImpl. The main thing is that I think
it will be a lot more reliable to bind to an ephemeral port when
compared to find an unused port.
Just so you know, I grabbed the patch from your webrev and tried it
out, it was nice to see close to x4 improvement when running these
tests with -concurrency:auto on an 4-core system.
-Alan