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");
|