Quantcast

svn commit: r1332057 - /qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/TestRunner.java

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

svn commit: r1332057 - /qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/TestRunner.java

kwall
Author: kwall
Date: Mon Apr 30 05:06:23 2012
New Revision: 1332057

URL: http://svn.apache.org/viewvc?rev=1332057&view=rev
Log:
QPID-3936: Performance Test Tool: Try to remove test queues in the event of unexpected shutdown (Control-C etc)

Modified:
    qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/TestRunner.java

Modified: qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/TestRunner.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/TestRunner.java?rev=1332057&r1=1332056&r2=1332057&view=diff
==============================================================================
--- qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/TestRunner.java (original)
+++ qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/TestRunner.java Mon Apr 30 05:06:23 2012
@@ -62,6 +62,22 @@ public class TestRunner
     /** Length of time to await test results or {@value #WAIT_FOREVER} */
     private final long _testResultTimeout;
 
+    private Thread _removeQueuesShutdownHook = new Thread()
+    {
+        @Override
+        public void run()
+        {
+            LOGGER.info("Shutdown intercepted: deleting test queues");
+            try
+            {
+                deleteQueues();
+            }
+            catch (Throwable t)
+            {
+                LOGGER.error("Failed to delete test queues during shutdown", t);
+            }
+        }
+    };
 
     public TestRunner(ParticipatingClients participatingClients, TestInstance testInstance, ControllerJmsDelegate jmsDelegate, long commandResponseTimeout, long testResultTimeout)
     {
@@ -98,10 +114,13 @@ public class TestRunner
     private void runParts()
     {
         boolean queuesCreated = false;
+
         try
         {
             createQueues();
             queuesCreated = true;
+            Runtime.getRuntime().addShutdownHook(_removeQueuesShutdownHook);
+
             sendTestSetupCommands();
             awaitCommandResponses();
             sendCommandToParticipatingClients(new StartTestCommand());
@@ -114,10 +133,14 @@ public class TestRunner
         }
         finally
         {
+
             if (queuesCreated)
             {
                 deleteQueues();
             }
+
+            Runtime.getRuntime().removeShutdownHook(_removeQueuesShutdownHook);
+
         }
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Loading...