14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /* @test
25 * @bug 4138056
26 * @summary synopsis: Activating objects from an Activatable constructor causes deadlock
27 * @author Ann Wollrath
28 *
29 * @library ../../../testlibrary
30 * @modules java.rmi/sun.rmi.registry
31 * java.rmi/sun.rmi.server
32 * java.rmi/sun.rmi.transport
33 * java.rmi/sun.rmi.transport.tcp
34 * @build TestLibrary RMID ActivationLibrary ActivateMe NestedActivate_Stub
35 * @run main/othervm/policy=security.policy/timeout=240 NestedActivate
36 */
37
38 import java.io.*;
39 import java.rmi.*;
40 import java.rmi.activation.*;
41 import java.rmi.server.*;
42 import java.rmi.registry.*;
43 import java.util.Properties;
44
45 public class NestedActivate
46 extends Activatable
47 implements ActivateMe, Runnable
48 {
49
50 private static Exception exception = null;
51 private static boolean done = false;
52 private ActivateMe obj = null;
53
84 /**
85 * Thread to deactivate object. First attempts to make object
86 * inactive (via the inactive method). If that fails (the
87 * object may still have pending/executing calls), then
88 * unexport the object forcibly.
89 */
90 public void run() {
91 ActivationLibrary.deactivate(this, getID());
92 }
93
94 public static void main(String[] args) {
95
96 System.err.println("\nRegression test for bug 4138056\n");
97
98 TestLibrary.suggestSecurityManager("java.rmi.RMISecurityManager");
99
100 RMID rmid = null;
101
102 try {
103 RMID.removeLog();
104 rmid = RMID.createRMID();
105 rmid.start();
106
107 /* Cause activation groups to have a security policy that will
108 * allow security managers to be downloaded and installed
109 */
110 final Properties p = new Properties();
111 // this test must always set policies/managers in its
112 // activation groups
113 p.put("java.security.policy",
114 TestParams.defaultGroupPolicy);
115 p.put("java.security.manager",
116 TestParams.defaultSecurityManager);
117
118 Thread t = new Thread() {
119 public void run () {
120 try {
121 System.err.println("Creating group descriptor");
122 ActivationGroupDesc groupDesc =
123 new ActivationGroupDesc(p, null);
124 ActivationGroupID groupID =
|
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /* @test
25 * @bug 4138056
26 * @summary synopsis: Activating objects from an Activatable constructor causes deadlock
27 * @author Ann Wollrath
28 *
29 * @library ../../../testlibrary
30 * @modules java.rmi/sun.rmi.registry
31 * java.rmi/sun.rmi.server
32 * java.rmi/sun.rmi.transport
33 * java.rmi/sun.rmi.transport.tcp
34 * java.base/sun.nio.ch
35 * @build TestLibrary RMID ActivationLibrary ActivateMe NestedActivate_Stub
36 * @run main/othervm/policy=security.policy/timeout=240 NestedActivate
37 */
38
39 import java.io.*;
40 import java.rmi.*;
41 import java.rmi.activation.*;
42 import java.rmi.server.*;
43 import java.rmi.registry.*;
44 import java.util.Properties;
45
46 public class NestedActivate
47 extends Activatable
48 implements ActivateMe, Runnable
49 {
50
51 private static Exception exception = null;
52 private static boolean done = false;
53 private ActivateMe obj = null;
54
85 /**
86 * Thread to deactivate object. First attempts to make object
87 * inactive (via the inactive method). If that fails (the
88 * object may still have pending/executing calls), then
89 * unexport the object forcibly.
90 */
91 public void run() {
92 ActivationLibrary.deactivate(this, getID());
93 }
94
95 public static void main(String[] args) {
96
97 System.err.println("\nRegression test for bug 4138056\n");
98
99 TestLibrary.suggestSecurityManager("java.rmi.RMISecurityManager");
100
101 RMID rmid = null;
102
103 try {
104 RMID.removeLog();
105 rmid = RMID.createRMIDOnEphemeralPort();
106 rmid.start();
107
108 /* Cause activation groups to have a security policy that will
109 * allow security managers to be downloaded and installed
110 */
111 final Properties p = new Properties();
112 // this test must always set policies/managers in its
113 // activation groups
114 p.put("java.security.policy",
115 TestParams.defaultGroupPolicy);
116 p.put("java.security.manager",
117 TestParams.defaultSecurityManager);
118
119 Thread t = new Thread() {
120 public void run () {
121 try {
122 System.err.println("Creating group descriptor");
123 ActivationGroupDesc groupDesc =
124 new ActivationGroupDesc(p, null);
125 ActivationGroupID groupID =
|