test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/UseCustomSocketFactory.java
Print this page
*** 31,98 ****
* @library ../../../../testlibrary
* @build TestLibrary RMID JavaVM Echo EchoImpl EchoImpl_Stub
* @run main/othervm/policy=security.policy/timeout=120 UseCustomSocketFactory
*/
! import java.io.*;
import java.rmi.*;
- import java.rmi.server.*;
import java.rmi.registry.*;
public class UseCustomSocketFactory {
public static void main(String[] args) {
int registryPort = -1;
! String[] protocol = new String[] { "", "compress", "xor" };
System.out.println("\nRegression test for bug 4127826\n");
TestLibrary.suggestSecurityManager("java.rmi.RMISecurityManager");
try {
Registry registry = TestLibrary.createRegistryOnUnusedPort();
registryPort = TestLibrary.getRegistryPort(registry);
! } catch (Exception e) {
TestLibrary.bomb("creating registry", e);
}
!
! for (int i = 0; i < protocol.length; i++) {
!
System.err.println("test policy: " +
TestParams.defaultPolicy);
!
! JavaVM serverVM = new JavaVM("EchoImpl",
! "-Djava.security.policy=" +
TestParams.defaultPolicy +
" -Drmi.registry.port=" +
! registryPort,
! protocol[i]);
System.err.println("\nusing protocol: " +
! (protocol[i] == "" ? "none" : protocol[i]));
!
try {
/* spawn VM for EchoServer */
serverVM.start();
/* lookup server */
- int tries = 8;
Echo obj = null;
do {
try {
obj = (Echo) Naming.lookup("//:" + registryPort +
"/EchoServer");
break;
} catch (NotBoundException e) {
try {
! Thread.sleep(2000);
! } catch (Exception ignore) {
}
- continue;
}
! } while (--tries > 0);
if (obj == null)
TestLibrary.bomb("server not bound in 8 tries", null);
/* invoke remote method and print result*/
--- 31,92 ----
* @library ../../../../testlibrary
* @build TestLibrary RMID JavaVM Echo EchoImpl EchoImpl_Stub
* @run main/othervm/policy=security.policy/timeout=120 UseCustomSocketFactory
*/
! import java.io.IOException;
! import java.net.MalformedURLException;
import java.rmi.*;
import java.rmi.registry.*;
public class UseCustomSocketFactory {
public static void main(String[] args) {
int registryPort = -1;
! String[] protocols = new String[] { "", "compress", "xor" };
System.out.println("\nRegression test for bug 4127826\n");
TestLibrary.suggestSecurityManager("java.rmi.RMISecurityManager");
try {
Registry registry = TestLibrary.createRegistryOnUnusedPort();
registryPort = TestLibrary.getRegistryPort(registry);
! } catch (RemoteException e) {
TestLibrary.bomb("creating registry", e);
}
! for (String protocol : protocols) {
System.err.println("test policy: " +
TestParams.defaultPolicy);
! JavaVM serverVM = new JavaVM("EchoImpl", "-Djava.security.policy=" +
TestParams.defaultPolicy +
" -Drmi.registry.port=" +
! registryPort, protocol);
System.err.println("\nusing protocol: " +
! ("".equals(protocol) ? "none" : protocol));
try {
/* spawn VM for EchoServer */
serverVM.start();
/* lookup server */
Echo obj = null;
+ // 16 seconds timeout
+ long stopTime = System.currentTimeMillis() + 16000;
do {
try {
obj = (Echo) Naming.lookup("//:" + registryPort +
"/EchoServer");
break;
} catch (NotBoundException e) {
try {
! Thread.sleep(200);
! } catch (InterruptedException ignore) {
}
}
! } while (System.currentTimeMillis() < stopTime);
if (obj == null)
TestLibrary.bomb("server not bound in 8 tries", null);
/* invoke remote method and print result*/
*** 102,120 ****
byte[] result = obj.echoNot(data);
for (int j = 0; j < result.length; j++)
result[j] = (byte) ~result[j];
System.err.println("Result: " + new String(result));
! } catch (Exception e) {
TestLibrary.bomb("test failed", e);
} finally {
serverVM.destroy();
try {
Naming.unbind("//:" + registryPort +
"/EchoServer");
! } catch (Exception e) {
TestLibrary.bomb("unbinding EchoServer", e);
}
}
}
--- 96,114 ----
byte[] result = obj.echoNot(data);
for (int j = 0; j < result.length; j++)
result[j] = (byte) ~result[j];
System.err.println("Result: " + new String(result));
! } catch (IOException e) {
TestLibrary.bomb("test failed", e);
} finally {
serverVM.destroy();
try {
Naming.unbind("//:" + registryPort +
"/EchoServer");
! } catch (RemoteException | NotBoundException | MalformedURLException e) {
TestLibrary.bomb("unbinding EchoServer", e);
}
}
}