8005226: java/rmi/transport/pinClientSocketFactory/PinClientSocketFactory.java fails intermittently

Reviewed-by: rriggs, smarks
This commit is contained in:
Chris Hegarty 2015-03-05 17:04:47 +00:00
parent b7c2d1b8fe
commit 9e0c46f629
2 changed files with 15 additions and 3 deletions

View File

@ -412,6 +412,16 @@ public class TestLibrary {
return LocateRegistry.createRegistry(getUnusedRandomPort());
}
/**
* Creates an RMI {@link Registry} on an ephemeral port.
*
* @returns an RMI Registry
* @throws RemoteException if there was a problem creating a Registry.
*/
public static Registry createRegistryOnEphemeralPort() throws RemoteException {
return LocateRegistry.createRegistry(0);
}
/**
* Returns the port number the RMI {@link Registry} is running on.
*

View File

@ -58,7 +58,6 @@ import java.util.concurrent.atomic.AtomicInteger;
public class PinClientSocketFactory {
private static final int PORT = TestLibrary.getUnusedRandomPort();
private static final int SESSIONS = 50;
public interface Factory extends Remote {
@ -96,10 +95,13 @@ public class PinClientSocketFactory {
}
UnicastRemoteObject.unexportObject(factoryImpl, true);
Registry registryImpl = LocateRegistry.createRegistry(PORT);
Registry registryImpl = TestLibrary.createRegistryOnEphemeralPort();
int port = TestLibrary.getRegistryPort(registryImpl);
System.out.println("Registry listening on port " + port);
CSF csf = new CSF();
Reference<CSF> registryRef = new WeakReference<CSF>(csf);
Registry registryStub = LocateRegistry.getRegistry("", PORT, csf);
Registry registryStub = LocateRegistry.getRegistry("", port, csf);
csf = null;
registryStub.list();
registryStub = null;