2362N/A * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved. 0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 0N/A * This code is free software; you can redistribute it and/or modify it 0N/A * under the terms of the GNU General Public License version 2 only, as 0N/A * published by the Free Software Foundation. 0N/A * This code is distributed in the hope that it will be useful, but WITHOUT 0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 0N/A * version 2 for more details (a copy is included in the LICENSE file that 0N/A * accompanied this code). 0N/A * You should have received a copy of the GNU General Public License version 0N/A * 2 along with this work; if not, write to the Free Software Foundation, 0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2362N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 2362N/A * or visit www.oracle.com if you need additional information or have any 0N/A * @summary rmid should annotate child process output 0N/A * @author Laird Dornin; code borrowed from Ann Wollrath 0N/A * @library ../../../testlibrary 5551N/A * @build TestLibrary RMID MyRMI CheckAnnotations_Stub 0N/A // buffers to store rmid output. 0N/A * The following line is required with the JDK 1.2 VM so that the 0N/A * VM can exit gracefully when this test completes. Otherwise, the 0N/A * conservative garbage collector will find a handle to the server 0N/A * object on the native stack and not clear the weak reference to 0N/A * it in the RMI runtime's object table. 0N/A // Set security manager according to the 0N/A /* Cause activation groups to have a security policy that will 0N/A * allow security managers to be downloaded and installed 0N/A // activation groups 0N/A p.
put(
"java.security.manager",
0N/A /* new desc - we will reuse in order to get multiple vms.*/ 0N/A * Loop a bunch of times to force activator to 0N/A * spawn VMs (groups) 0N/A for (
int i =
0; i <
3; i++) {
0N/A // object activated in annotation check via method call 0N/A * Clean up object too. 0N/A (
"Deactivate object via method call");
0N/A (
"\nsuccess: CheckAnnotations test passed ");
0N/A * check to make sure that the output from a spawned vm is 0N/A * cause the spawned vm to generate output that will 0N/A * be checked for proper annotation. printOut is 0N/A * actually being called on an activated implementation. 0N/A /* we have to wait for output to filter down 0N/A * from children so we can read it before we 0N/A for (
int i =
0 ; i <
5 ; i ++ ) {
0N/A // have to give output from rmid time to trickle down to 0N/A // only test when we are annotating..., first run does not annotate 0N/A // just make sure that last two strings are what we expect. 0N/A // implementation of MyRMI, make this object activatable. 0N/A * Spawns a thread to deactivate the object. 0N/A * Thread to deactivate object. First attempts to make object 0N/A * inactive (via the inactive method). If that fails (the 0N/A * unexport the object forcibly.