You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by gt...@apache.org on 2010/01/27 18:46:09 UTC

svn commit: r903758 - /activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/TempStorageBlockedBrokerTest.java

Author: gtully
Date: Wed Jan 27 17:46:08 2010
New Revision: 903758

URL: http://svn.apache.org/viewvc?rev=903758&view=rev
Log:
resolve intermitent failure on loaded machines, consumer could complete before producer thread got to do any work at all

Modified:
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/TempStorageBlockedBrokerTest.java

Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/TempStorageBlockedBrokerTest.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/TempStorageBlockedBrokerTest.java?rev=903758&r1=903757&r2=903758&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/TempStorageBlockedBrokerTest.java (original)
+++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/bugs/TempStorageBlockedBrokerTest.java Wed Jan 27 17:46:08 2010
@@ -17,7 +17,11 @@
 package org.apache.activemq.bugs;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
 import java.io.File;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 import javax.jms.Connection;
 import javax.jms.DeliveryMode;
@@ -80,6 +84,7 @@
         final Connection producerConnection = factory.createConnection();
         producerConnection.start();
 
+        final CountDownLatch producerHasSentTenMessages = new CountDownLatch(10);
         Thread producingThread = new Thread("Producing thread") {
             @Override
             public void run() {
@@ -92,10 +97,12 @@
 
                         producer.send(message);
                         messagesSent.incrementAndGet();
+                        producerHasSentTenMessages.countDown();
                         Thread.sleep(10);
-                        LOG.info("Sent Message " + idx);
-                        LOG.info("Temp Store Usage " + broker.getSystemUsage().getTempUsage().getUsage());
-
+                        if (idx != 0 && idx%100 == 0) {
+                            LOG.info("Sent Message " + idx);
+                            LOG.info("Temp Store Usage " + broker.getSystemUsage().getTempUsage().getUsage());
+                        }
                     }
                     producer.close();
                     session.close();
@@ -106,12 +113,16 @@
         };
         producingThread.start();
 
+        assertTrue("producer has sent 10 in a reasonable time", producerHasSentTenMessages.await(30, TimeUnit.SECONDS));
+        
         int count = 0;
 
         Message m = null;
         while ((m = consumer.receive(messageReceiveTimeout)) != null) {
             count++;
-            LOG.info("Recieved Message (" + count + "):" + m);
+            if (count != 0 && count%10 == 0) {
+                LOG.info("Recieved Message (" + count + "):" + m);
+            }
             messagesConsumed.incrementAndGet();
             try {
                 Thread.sleep(100);
@@ -120,19 +131,13 @@
             }
         }
 
-        LOG.info("Connection Timeout: Retrying");
-
-        // session.close();
-        // consumerConnection.close();
-        //
-        // consumerConnection2.start();
-        // session2 = consumerConnection2.createSession(false,
-        // Session.AUTO_ACKNOWLEDGE);
-        // consumer = session2.createConsumer(destination);
+        LOG.info("Connection Timeout: Retrying.. count: " + count);
 
         while ((m = consumer.receive(messageReceiveTimeout)) != null) {
             count++;
-            LOG.info("Recieved Message (" + count + "):" + m);
+            if (count != 0 && count%10 == 0) {
+                LOG.info("Recieved Message (" + count + "):" + m);
+            }
             messagesConsumed.incrementAndGet();
             try {
                 Thread.sleep(100);