test/java/rmi/activation/Activatable/shutdownGracefully/ShutdownGracefully.java
Print this page
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
@@ -140,94 +140,21 @@
"object via method call");
} catch (ActivationException e) {
System.err.println("received exception from registration " +
"call that should have failed...");
}
-
- /*
- * no longer needed because the security manager
- * throws an exception during snapshot
- */
- /*
- try {
- registering.shutdown();
-
- System.err.println("received exception from remote " +
- "call that should have failed...");
- } catch (RemoteException e) {
- }
- */
-
- } catch (Exception e) {
- TestLibrary.bomb("\nfailure: unexpected exception ", e);
- } finally {
- try {
- Thread.sleep(4000);
- } catch (InterruptedException e) {
- }
-
- registering = null;
-
- // Need to make sure that rmid goes away by itself
- JavaVM rmidProcess = rmid;
- if (rmidProcess != null) {
- try {
- Runnable waitThread =
- new ShutdownDetectThread(rmidProcess);
-
- synchronized (waitThread) {
- (new Thread(waitThread)).start();
- waitThread.wait(SHUTDOWN_TIMEOUT);
- System.err.println("rmid has shutdown");
-
- if (!rmidDone) {
- // ensure that this rmid does not infect
- // other tests.
- rmidProcess.destroy();
+ if (rmid.waitFor(SHUTDOWN_TIMEOUT) == 0) {
+ System.err.println("rmid has gracefully shutdown in time");
+ } else {
TestLibrary.bomb("rmid did not shutdown " +
"gracefully in time");
}
- }
} catch (Exception e) {
- TestLibrary.bomb("exception waiting for rmid " +
- "to shut down");
- }
- }
- // else rmid should be down
- }
-
- System.err.println
- ("\nsuccess: ShutdownGracefully test passed ");
- }
-
- private static boolean rmidDone = false;
-
- /**
- * class that waits for rmid to exit
- */
- private static class ShutdownDetectThread implements Runnable {
- private JavaVM rmidProcess = null;
-
- ShutdownDetectThread(JavaVM rmidProcess) {
- this.rmidProcess = rmidProcess;
- }
- public void run() {
- System.err.println("waiting for rmid to shutdown");
-
- try {
- rmidProcess.waitFor();
- } catch (InterruptedException e) {
- // should not happen
- }
-
- synchronized (this) {
- // notify parent thread when rmid has exited
- this.notify();
- rmidDone = true;
- }
-
- RMID.removeLog();
+ TestLibrary.bomb("\nfailure: unexpected exception ", e);
+ } finally {
+ if(rmid != null)
+ rmid.destroy();
}
}
/**
* implementation of RegisteringActivatable