test/java/rmi/activation/Activatable/checkActivateRef/CheckActivateRef.java

Print this page
rev 15773 : 8085192: java/rmi/activation/Activatable tests fail intermittently due to "Port already in use"
Reviewed-by:


  23 
  24 /* @test
  25  * @bug 4105080
  26  * @summary Activation retry during a remote method call to an activatable
  27  *          object can cause infinite recursion in some situations. The
  28  *          RemoteRef contained in the ActivatableRef should never be
  29  *          an ActivatableRef, but another type.
  30  * (Needs /othervm to evade JavaTest security manager --aecolley)
  31  * @author Ann Wollrath
  32  *
  33  * @bug 4164971
  34  * @summary allow non-public activatable class and/or constructor
  35  *          Main test class hasa non-public constructor to ensure
  36  *          functionality is in place
  37  *
  38  * @library ../../../testlibrary
  39  * @modules java.rmi/sun.rmi.registry
  40  *          java.rmi/sun.rmi.server
  41  *          java.rmi/sun.rmi.transport
  42  *          java.rmi/sun.rmi.transport.tcp
  43  * @build TestLibrary RMID ActivateMe CheckActivateRef_Stub

  44  * @run main/othervm/policy=security.policy/timeout=240 -Djava.rmi.server.ignoreStubClasses=true CheckActivateRef
  45  * @run main/othervm/policy=security.policy/timeout=240 -Djava.rmi.server.ignoreStubClasses=false CheckActivateRef
  46  * @key intermittent
  47  */
  48 
  49 import java.io.*;
  50 import java.rmi.*;
  51 import java.rmi.server.*;
  52 import java.rmi.activation.*;
  53 import sun.rmi.server.ActivatableRef;
  54 import java.lang.reflect.*;
  55 import java.util.Properties;
  56 
  57 public class CheckActivateRef
  58         extends Activatable
  59         implements ActivateMe, Runnable
  60 {
  61 
  62     private CheckActivateRef(ActivationID id, MarshalledObject obj)
  63         throws ActivationException, RemoteException


 101         // test should tolerate certain types of failures
 102         int failures = 0;
 103         int i = 0;
 104 
 105         System.err.println("\nRegression test for bug 4105080\n");
 106         System.err.println("java.security.policy = " +
 107                            System.getProperty("java.security.policy",
 108                                               "no policy"));
 109 
 110 
 111         String propValue =
 112             System.getProperty("java.rmi.server.useDynamicProxies", "false");
 113         boolean useDynamicProxies = Boolean.parseBoolean(propValue);
 114 
 115         CheckActivateRef server;
 116         try {
 117             TestLibrary.suggestSecurityManager(TestParams.defaultSecurityManager);
 118 
 119             // start an rmid.
 120             RMID.removeLog();
 121             rmid = RMID.createRMID();
 122             rmid.start();
 123 
 124             /* Cause activation groups to have a security policy that will
 125              * allow security managers to be downloaded and installed
 126              */
 127             Properties p = new Properties();
 128             // this test must always set policies/managers in its
 129             // activation groups
 130             p.put("java.security.policy",
 131                   TestParams.defaultGroupPolicy);
 132             p.put("java.security.manager",
 133                   TestParams.defaultSecurityManager);
 134             p.put("java.rmi.server.useDynamicProxies", propValue);
 135 
 136             /*
 137              * Activate an object by registering its object
 138              * descriptor and invoking a method on the
 139              * stub returned from the register call.
 140              */
 141             System.err.println("Create activation group in this VM");




  23 
  24 /* @test
  25  * @bug 4105080
  26  * @summary Activation retry during a remote method call to an activatable
  27  *          object can cause infinite recursion in some situations. The
  28  *          RemoteRef contained in the ActivatableRef should never be
  29  *          an ActivatableRef, but another type.
  30  * (Needs /othervm to evade JavaTest security manager --aecolley)
  31  * @author Ann Wollrath
  32  *
  33  * @bug 4164971
  34  * @summary allow non-public activatable class and/or constructor
  35  *          Main test class hasa non-public constructor to ensure
  36  *          functionality is in place
  37  *
  38  * @library ../../../testlibrary
  39  * @modules java.rmi/sun.rmi.registry
  40  *          java.rmi/sun.rmi.server
  41  *          java.rmi/sun.rmi.transport
  42  *          java.rmi/sun.rmi.transport.tcp
  43  *          java.base/sun.nio.ch
  44  * @build TestLibrary RMID RMIDSelectorProvider ActivateMe CheckActivateRef_Stub
  45  * @run main/othervm/policy=security.policy/timeout=240 -Djava.rmi.server.ignoreStubClasses=true CheckActivateRef
  46  * @run main/othervm/policy=security.policy/timeout=240 -Djava.rmi.server.ignoreStubClasses=false CheckActivateRef
  47  * @key intermittent
  48  */
  49 
  50 import java.io.*;
  51 import java.rmi.*;
  52 import java.rmi.server.*;
  53 import java.rmi.activation.*;
  54 import sun.rmi.server.ActivatableRef;
  55 import java.lang.reflect.*;
  56 import java.util.Properties;
  57 
  58 public class CheckActivateRef
  59         extends Activatable
  60         implements ActivateMe, Runnable
  61 {
  62 
  63     private CheckActivateRef(ActivationID id, MarshalledObject obj)
  64         throws ActivationException, RemoteException


 102         // test should tolerate certain types of failures
 103         int failures = 0;
 104         int i = 0;
 105 
 106         System.err.println("\nRegression test for bug 4105080\n");
 107         System.err.println("java.security.policy = " +
 108                            System.getProperty("java.security.policy",
 109                                               "no policy"));
 110 
 111 
 112         String propValue =
 113             System.getProperty("java.rmi.server.useDynamicProxies", "false");
 114         boolean useDynamicProxies = Boolean.parseBoolean(propValue);
 115 
 116         CheckActivateRef server;
 117         try {
 118             TestLibrary.suggestSecurityManager(TestParams.defaultSecurityManager);
 119 
 120             // start an rmid.
 121             RMID.removeLog();
 122             rmid = RMID.createRMIDOnEphemeralPort();
 123             rmid.start();
 124 
 125             /* Cause activation groups to have a security policy that will
 126              * allow security managers to be downloaded and installed
 127              */
 128             Properties p = new Properties();
 129             // this test must always set policies/managers in its
 130             // activation groups
 131             p.put("java.security.policy",
 132                   TestParams.defaultGroupPolicy);
 133             p.put("java.security.manager",
 134                   TestParams.defaultSecurityManager);
 135             p.put("java.rmi.server.useDynamicProxies", propValue);
 136 
 137             /*
 138              * Activate an object by registering its object
 139              * descriptor and invoking a method on the
 140              * stub returned from the register call.
 141              */
 142             System.err.println("Create activation group in this VM");