Repository: activemq
Updated Branches:
  refs/heads/master d3ea5c4f9 -> 3da9b0720


https://issues.apache.org/jira/browse/AMQ-5621

Clean up, remove sleep and some unused code.

Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/809d5b9b
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/809d5b9b
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/809d5b9b

Branch: refs/heads/master
Commit: 809d5b9bc86a838aff65f7ca4650da3894bc9c67
Parents: d3ea5c4
Author: Timothy Bish <[email protected]>
Authored: Tue May 10 09:56:19 2016 -0400
Committer: Timothy Bish <[email protected]>
Committed: Tue May 10 09:56:19 2016 -0400

----------------------------------------------------------------------
 .../org/apache/activemq/bugs/AMQ2616Test.java   | 66 ++++++++++++--------
 1 file changed, 39 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/809d5b9b/activemq-unit-tests/src/test/java/org/apache/activemq/bugs/AMQ2616Test.java
----------------------------------------------------------------------
diff --git 
a/activemq-unit-tests/src/test/java/org/apache/activemq/bugs/AMQ2616Test.java 
b/activemq-unit-tests/src/test/java/org/apache/activemq/bugs/AMQ2616Test.java
index 4f6f168..a97859c 100644
--- 
a/activemq-unit-tests/src/test/java/org/apache/activemq/bugs/AMQ2616Test.java
+++ 
b/activemq-unit-tests/src/test/java/org/apache/activemq/bugs/AMQ2616Test.java
@@ -16,15 +16,17 @@
  */
 package org.apache.activemq.bugs;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
 import java.io.File;
-import java.util.ArrayList;
-import java.util.concurrent.atomic.AtomicBoolean;
+
 import javax.jms.BytesMessage;
 import javax.jms.Connection;
 import javax.jms.MessageProducer;
 import javax.jms.Queue;
 import javax.jms.Session;
-import junit.framework.TestCase;
+
 import org.apache.activemq.ActiveMQConnectionFactory;
 import org.apache.activemq.broker.BrokerService;
 import 
org.apache.activemq.broker.region.policy.FilePendingQueueMessageStoragePolicy;
@@ -33,17 +35,26 @@ import org.apache.activemq.broker.region.policy.PolicyMap;
 import org.apache.activemq.command.ActiveMQQueue;
 import org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter;
 import org.apache.activemq.util.IOHelper;
+import org.apache.activemq.util.Wait;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TestName;
+
+public class AMQ2616Test {
+
+    @Rule
+    public TestName test = new TestName();
 
-public class AMQ2616Test extends TestCase {
     private static final int NUMBER = 2000;
     private BrokerService brokerService;
-    private final ArrayList<Thread> threads = new ArrayList<Thread>();
     private final String ACTIVEMQ_BROKER_BIND = "tcp://0.0.0.0:0";
-    private final AtomicBoolean shutdown = new AtomicBoolean();
 
     private String connectionUri;
 
-    public void testQueueResourcesReleased() throws Exception{
+    @Test(timeout = 90000)
+    public void testQueueResourcesReleased() throws Exception {
         ActiveMQConnectionFactory fac = new 
ActiveMQConnectionFactory(connectionUri);
         Connection tempConnection = fac.createConnection();
         tempConnection.start();
@@ -51,26 +62,32 @@ public class AMQ2616Test extends TestCase {
         Queue tempQueue = tempSession.createTemporaryQueue();
 
         Connection testConnection = fac.createConnection();
-        long startUsage = 
brokerService.getSystemUsage().getMemoryUsage().getUsage();
+        final long startUsage = 
brokerService.getSystemUsage().getMemoryUsage().getUsage();
         Session testSession = testConnection.createSession(false, 
Session.AUTO_ACKNOWLEDGE);
         MessageProducer testProducer = testSession.createProducer(tempQueue);
-        byte[] payload = new byte[1024*4];
-        for (int i = 0; i < NUMBER; i++ ) {
+        byte[] payload = new byte[1024 * 4];
+
+        for (int i = 0; i < NUMBER; i++) {
             BytesMessage msg = testSession.createBytesMessage();
             msg.writeBytes(payload);
             testProducer.send(msg);
         }
+
         long endUsage = 
brokerService.getSystemUsage().getMemoryUsage().getUsage();
-        assertFalse(startUsage==endUsage);
+        assertFalse(startUsage == endUsage);
         tempConnection.close();
-        Thread.sleep(1000);
-        endUsage = brokerService.getSystemUsage().getMemoryUsage().getUsage();
-        assertEquals(startUsage,endUsage);
-    }
 
+        assertTrue("Usage should return to original", Wait.waitFor(new 
Wait.Condition() {
+
+            @Override
+            public boolean isSatisified() throws Exception {
+                return 
brokerService.getSystemUsage().getMemoryUsage().getUsage() == startUsage;
+            }
+        }));
+    }
 
-    @Override
-    protected void setUp() throws Exception {
+    @Before
+    public void setUp() throws Exception {
         // Start an embedded broker up.
         brokerService = new BrokerService();
 
@@ -90,6 +107,7 @@ public class AMQ2616Test extends TestCase {
         pe.setExpireMessagesPeriod(1000);
         pe.setPendingQueuePolicy(new FilePendingQueueMessageStoragePolicy());
         policyMap.put(new ActiveMQQueue(">"), pe);
+
         brokerService.setDestinationPolicy(policyMap);
         brokerService.getSystemUsage().getMemoryUsage().setLimit(20 * 1024 * 
1024);
         brokerService.getSystemUsage().getTempUsage().setLimit(200 * 1024 * 
1024);
@@ -99,18 +117,12 @@ public class AMQ2616Test extends TestCase {
 
         connectionUri = 
brokerService.getTransportConnectors().get(0).getPublishableConnectString();
 
-        new ActiveMQQueue(getName());
+        new ActiveMQQueue(test.getMethodName());
     }
 
-    @Override
-    protected void tearDown() throws Exception {
-        // Stop any running threads.
-        shutdown.set(true);
-        for (Thread t : threads) {
-            t.interrupt();
-            t.join();
-        }
+    @After
+    public void tearDown() throws Exception {
         brokerService.stop();
+        brokerService = null;
     }
-
 }

Reply via email to