From 634875f391d6e0e85edebbe7c3e1ad9d0abb399f Mon Sep 17 00:00:00 2001 From: Hamlin Li Date: Mon, 12 Dec 2016 17:29:46 -0800 Subject: [PATCH] 8166763: java/rmi/* tests fail intermittently with "Port already in use" in RMID.start() Reviewed-by: chegar --- .../downloadActivationGroup/DownloadActivationGroup.java | 7 ++++--- .../downloadActivationGroup/rmid.security.policy | 7 +++++++ .../activeGroup/IdempotentActiveGroup.java | 7 ++++--- .../ActivationSystem/activeGroup/rmid.security.policy | 7 +++++++ .../modifyDescriptor/ModifyDescriptor.java | 2 +- .../stubClassesPermitted/StubClassesPermitted.java | 7 ++++--- .../stubClassesPermitted/rmid.security.policy | 5 +++++ .../ActivationSystem/unregisterGroup/UnregisterGroup.java | 7 ++++--- .../ActivationSystem/unregisterGroup/rmid.security.policy | 5 +++++ .../activatable/UseCustomSocketFactory.java | 5 +++-- .../useSocketFactory/activatable/rmid.security.policy | 7 +++++++ 11 files changed, 51 insertions(+), 15 deletions(-) create mode 100644 jdk/test/java/rmi/activation/ActivationGroup/downloadActivationGroup/rmid.security.policy create mode 100644 jdk/test/java/rmi/activation/ActivationSystem/activeGroup/rmid.security.policy create mode 100644 jdk/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/rmid.security.policy diff --git a/jdk/test/java/rmi/activation/ActivationGroup/downloadActivationGroup/DownloadActivationGroup.java b/jdk/test/java/rmi/activation/ActivationGroup/downloadActivationGroup/DownloadActivationGroup.java index 815bb22e17b..bfa12177eb0 100644 --- a/jdk/test/java/rmi/activation/ActivationGroup/downloadActivationGroup/DownloadActivationGroup.java +++ b/jdk/test/java/rmi/activation/ActivationGroup/downloadActivationGroup/DownloadActivationGroup.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,7 +36,8 @@ * java.rmi/sun.rmi.server * java.rmi/sun.rmi.transport * java.rmi/sun.rmi.transport.tcp - * @build TestLibrary RMID ActivationLibrary + * java.base/sun.nio.ch + * @build TestLibrary RMID ActivationLibrary RMIDSelectorProvider * DownloadActivationGroup MyActivationGroupImpl DownloadActivationGroup_Stub * @run main/othervm/policy=security.policy/timeout=240 DownloadActivationGroup */ @@ -123,7 +124,7 @@ public class DownloadActivationGroup * Start rmid. */ RMID.removeLog(); - rmid = RMID.createRMID(); + rmid = RMID.createRMIDOnEphemeralPort(); String execPolicyOption = "-Dsun.rmi.activation.execPolicy=none"; rmid.addOptions(new String[] { execPolicyOption }); rmid.start(); diff --git a/jdk/test/java/rmi/activation/ActivationGroup/downloadActivationGroup/rmid.security.policy b/jdk/test/java/rmi/activation/ActivationGroup/downloadActivationGroup/rmid.security.policy new file mode 100644 index 00000000000..f2c4f1dbfaa --- /dev/null +++ b/jdk/test/java/rmi/activation/ActivationGroup/downloadActivationGroup/rmid.security.policy @@ -0,0 +1,7 @@ +grant { + permission java.lang.RuntimePermission "selectorProvider"; + permission java.lang.RuntimePermission "accessClassInPackage.sun.nio.ch"; + permission java.util.PropertyPermission "test.java.rmi.testlibrary.RMIDSelectorProvider.port", "read"; + permission java.util.PropertyPermission "test.java.rmi.testlibrary.RMIDSelectorProvider.timeout", "read"; + permission java.net.SocketPermission "*:1024-", "listen,resolve,connect,accept"; +}; diff --git a/jdk/test/java/rmi/activation/ActivationSystem/activeGroup/IdempotentActiveGroup.java b/jdk/test/java/rmi/activation/ActivationSystem/activeGroup/IdempotentActiveGroup.java index 521598de8f0..9a316e7dac1 100644 --- a/jdk/test/java/rmi/activation/ActivationSystem/activeGroup/IdempotentActiveGroup.java +++ b/jdk/test/java/rmi/activation/ActivationSystem/activeGroup/IdempotentActiveGroup.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,7 +33,8 @@ * java.rmi/sun.rmi.server * java.rmi/sun.rmi.transport * java.rmi/sun.rmi.transport.tcp - * @build TestLibrary RMID ActivationLibrary + * java.base/sun.nio.ch + * @build TestLibrary RMID ActivationLibrary RMIDSelectorProvider * @run main/othervm/policy=security.policy/timeout=480 IdempotentActiveGroup */ @@ -63,7 +64,7 @@ public class IdempotentActiveGroup { try { RMID.removeLog(); - rmid = RMID.createRMID(); + rmid = RMID.createRMIDOnEphemeralPort(); rmid.start(); System.err.println("Create group descriptor"); diff --git a/jdk/test/java/rmi/activation/ActivationSystem/activeGroup/rmid.security.policy b/jdk/test/java/rmi/activation/ActivationSystem/activeGroup/rmid.security.policy new file mode 100644 index 00000000000..f2c4f1dbfaa --- /dev/null +++ b/jdk/test/java/rmi/activation/ActivationSystem/activeGroup/rmid.security.policy @@ -0,0 +1,7 @@ +grant { + permission java.lang.RuntimePermission "selectorProvider"; + permission java.lang.RuntimePermission "accessClassInPackage.sun.nio.ch"; + permission java.util.PropertyPermission "test.java.rmi.testlibrary.RMIDSelectorProvider.port", "read"; + permission java.util.PropertyPermission "test.java.rmi.testlibrary.RMIDSelectorProvider.timeout", "read"; + permission java.net.SocketPermission "*:1024-", "listen,resolve,connect,accept"; +}; diff --git a/jdk/test/java/rmi/activation/ActivationSystem/modifyDescriptor/ModifyDescriptor.java b/jdk/test/java/rmi/activation/ActivationSystem/modifyDescriptor/ModifyDescriptor.java index 3e7798c687c..27bb48b60e8 100644 --- a/jdk/test/java/rmi/activation/ActivationSystem/modifyDescriptor/ModifyDescriptor.java +++ b/jdk/test/java/rmi/activation/ActivationSystem/modifyDescriptor/ModifyDescriptor.java @@ -110,7 +110,7 @@ public class ModifyDescriptor try { RMID.removeLog(); - rmid = RMID.createRMID(); + rmid = RMID.createRMIDOnEphemeralPort(); rmid.start(); /* diff --git a/jdk/test/java/rmi/activation/ActivationSystem/stubClassesPermitted/StubClassesPermitted.java b/jdk/test/java/rmi/activation/ActivationSystem/stubClassesPermitted/StubClassesPermitted.java index 5099ab175bf..ecc5e398e7f 100644 --- a/jdk/test/java/rmi/activation/ActivationSystem/stubClassesPermitted/StubClassesPermitted.java +++ b/jdk/test/java/rmi/activation/ActivationSystem/stubClassesPermitted/StubClassesPermitted.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,7 +32,8 @@ * java.rmi/sun.rmi.server * java.rmi/sun.rmi.transport * java.rmi/sun.rmi.transport.tcp - * @build TestLibrary RMID ActivationLibrary + * java.base/sun.nio.ch + * @build TestLibrary RMID ActivationLibrary RMIDSelectorProvider * CanCreateStubs StubClassesPermitted_Stub * @run main/othervm/java.security.policy=security.policy/secure=java.lang.SecurityManager/timeout=240 StubClassesPermitted */ @@ -98,7 +99,7 @@ public class StubClassesPermitted // start an rmid. RMID.removeLog(); - rmid = RMID.createRMID(); + rmid = RMID.createRMIDOnEphemeralPort(); rmid.start(); //rmid.addOptions(new String[] {"-C-Djava.rmi.server.logCalls=true"}); diff --git a/jdk/test/java/rmi/activation/ActivationSystem/stubClassesPermitted/rmid.security.policy b/jdk/test/java/rmi/activation/ActivationSystem/stubClassesPermitted/rmid.security.policy index 0c1df59fe99..640fb78d7bd 100644 --- a/jdk/test/java/rmi/activation/ActivationSystem/stubClassesPermitted/rmid.security.policy +++ b/jdk/test/java/rmi/activation/ActivationSystem/stubClassesPermitted/rmid.security.policy @@ -4,4 +4,9 @@ grant { // test needs to export a set of internal APIs to access them from unamed module permission com.sun.rmi.rmid.ExecOptionPermission "*"; + permission java.lang.RuntimePermission "selectorProvider"; + permission java.lang.RuntimePermission "accessClassInPackage.sun.nio.ch"; + permission java.util.PropertyPermission "test.java.rmi.testlibrary.RMIDSelectorProvider.port", "read"; + permission java.util.PropertyPermission "test.java.rmi.testlibrary.RMIDSelectorProvider.timeout", "read"; + permission java.net.SocketPermission "*:1024-", "listen,resolve,connect,accept"; }; diff --git a/jdk/test/java/rmi/activation/ActivationSystem/unregisterGroup/UnregisterGroup.java b/jdk/test/java/rmi/activation/ActivationSystem/unregisterGroup/UnregisterGroup.java index 7f4e1d22dee..fcd21614e6e 100644 --- a/jdk/test/java/rmi/activation/ActivationSystem/unregisterGroup/UnregisterGroup.java +++ b/jdk/test/java/rmi/activation/ActivationSystem/unregisterGroup/UnregisterGroup.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,7 +32,8 @@ * java.rmi/sun.rmi.server * java.rmi/sun.rmi.transport * java.rmi/sun.rmi.transport.tcp - * @build TestLibrary RMID ActivationLibrary ActivateMe + * java.base/sun.nio.ch + * @build TestLibrary RMID ActivationLibrary ActivateMe RMIDSelectorProvider * @run main/othervm/policy=security.policy UnregisterGroup */ @@ -76,7 +77,7 @@ public class UnregisterGroup extends Activatable implements ActivateMe try { RMID.removeLog(); - rmid = RMID.createRMID(); + rmid = RMID.createRMIDOnEphemeralPort(); rmid.start(); /* Cause activation groups to have a security policy that will diff --git a/jdk/test/java/rmi/activation/ActivationSystem/unregisterGroup/rmid.security.policy b/jdk/test/java/rmi/activation/ActivationSystem/unregisterGroup/rmid.security.policy index 0e43c5d37ab..ce485f61343 100644 --- a/jdk/test/java/rmi/activation/ActivationSystem/unregisterGroup/rmid.security.policy +++ b/jdk/test/java/rmi/activation/ActivationSystem/unregisterGroup/rmid.security.policy @@ -1,4 +1,9 @@ grant { permission com.sun.rmi.rmid.ExecOptionPermission "-Djava.security.manager=default"; permission com.sun.rmi.rmid.ExecOptionPermission "-Djava.security.policy=*"; + permission java.lang.RuntimePermission "selectorProvider"; + permission java.lang.RuntimePermission "accessClassInPackage.sun.nio.ch"; + permission java.util.PropertyPermission "test.java.rmi.testlibrary.RMIDSelectorProvider.port", "read"; + permission java.util.PropertyPermission "test.java.rmi.testlibrary.RMIDSelectorProvider.timeout", "read"; + permission java.net.SocketPermission "*:1024-", "listen,resolve,connect,accept"; }; diff --git a/jdk/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/UseCustomSocketFactory.java b/jdk/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/UseCustomSocketFactory.java index 86512a9d225..5c48efb0989 100644 --- a/jdk/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/UseCustomSocketFactory.java +++ b/jdk/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/UseCustomSocketFactory.java @@ -32,7 +32,8 @@ * java.rmi/sun.rmi.server * java.rmi/sun.rmi.transport * java.rmi/sun.rmi.transport.tcp - * @build TestLibrary Echo EchoImpl EchoImpl_Stub + * java.base/sun.nio.ch + * @build TestLibrary Echo EchoImpl EchoImpl_Stub RMIDSelectorProvider * @run main/othervm/policy=security.policy/timeout=360 UseCustomSocketFactory */ @@ -61,7 +62,7 @@ public class UseCustomSocketFactory { RMID rmid = null; try { - rmid = RMID.createRMID(); + rmid = RMID.createRMIDOnEphemeralPort(); rmid.addArguments(new String[] { "-C-Djava.security.policy=" + TestParams.defaultGroupPolicy + diff --git a/jdk/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/rmid.security.policy b/jdk/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/rmid.security.policy new file mode 100644 index 00000000000..f2c4f1dbfaa --- /dev/null +++ b/jdk/test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/rmid.security.policy @@ -0,0 +1,7 @@ +grant { + permission java.lang.RuntimePermission "selectorProvider"; + permission java.lang.RuntimePermission "accessClassInPackage.sun.nio.ch"; + permission java.util.PropertyPermission "test.java.rmi.testlibrary.RMIDSelectorProvider.port", "read"; + permission java.util.PropertyPermission "test.java.rmi.testlibrary.RMIDSelectorProvider.timeout", "read"; + permission java.net.SocketPermission "*:1024-", "listen,resolve,connect,accept"; +};