[hornetq-commits] JBoss hornetq SVN: r12178 - in trunk: tests/integration-tests/src/test/java/org/hornetq/tests/integration/cluster/failover and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Feb 23 04:40:38 EST 2012


Author: borges
Date: 2012-02-23 04:40:37 -0500 (Thu, 23 Feb 2012)
New Revision: 12178

Modified:
   trunk/hornetq-core/src/test/java/org/hornetq/tests/util/UnitTestCase.java
   trunk/tests/integration-tests/src/test/java/org/hornetq/tests/integration/cluster/failover/BackupSyncJournalTest.java
   trunk/tests/integration-tests/src/test/java/org/hornetq/tests/integration/cluster/failover/BackupSyncLargeMessageTest.java
   trunk/tests/integration-tests/src/test/java/org/hornetq/tests/integration/cluster/failover/FailoverTestBase.java
Log:
HORNETQ-720 Fix test by addressing synchronization in tested condition

Modified: trunk/hornetq-core/src/test/java/org/hornetq/tests/util/UnitTestCase.java
===================================================================
--- trunk/hornetq-core/src/test/java/org/hornetq/tests/util/UnitTestCase.java	2012-02-23 09:40:07 UTC (rev 12177)
+++ trunk/hornetq-core/src/test/java/org/hornetq/tests/util/UnitTestCase.java	2012-02-23 09:40:37 UTC (rev 12178)
@@ -57,6 +57,7 @@
 import org.hornetq.api.core.TransportConfiguration;
 import org.hornetq.api.core.client.ClientConsumer;
 import org.hornetq.api.core.client.ClientMessage;
+import org.hornetq.api.core.client.ClientProducer;
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.HornetQClient;
@@ -136,6 +137,7 @@
    private final Collection<ClientSessionFactory> sessionFactories = new ArrayList<ClientSessionFactory>();
    private final Collection<ClientSession> clientSessions = new HashSet<ClientSession>();
    private final Collection<ClientConsumer> clientConsumers = new HashSet<ClientConsumer>();
+   private final Collection<ClientProducer> clientProducers = new HashSet<ClientProducer>();
    private final Collection<HornetQComponent> otherComponents = new HashSet<HornetQComponent>();
 
    private boolean checkThread = true;
@@ -947,6 +949,7 @@
       try
       {
       assertAllClientConsumersAreClosed();
+         assertAllClientProducersAreClosed();
       assertAllClientSessionsAreClosed();
       }
       finally
@@ -1087,6 +1090,18 @@
    }
    }
 
+   private void assertAllClientProducersAreClosed()
+   {
+      synchronized (clientProducers)
+      {
+         for (ClientProducer p : clientProducers)
+         {
+               assertTrue(p + " should be closed", p.isClosed());
+         }
+         clientProducers.clear();
+      }
+   }
+
    /**
     *
     */
@@ -1140,10 +1155,7 @@
       return failedThread;
    }
 
-   /**
-    *
-    */
-   protected void cleanupPools()
+   private void cleanupPools()
    {
       OperationContextImpl.clearContext();
 
@@ -1589,6 +1601,18 @@
       return consumer;
    }
 
+   protected final ClientProducer addClientProducer(ClientProducer consumer)
+   {
+      if (consumer != null)
+      {
+         synchronized (clientProducers)
+         {
+            clientProducers.add(consumer);
+         }
+      }
+      return consumer;
+   }
+
    protected final void addHornetQComponent(HornetQComponent component)
    {
       if (component != null)

Modified: trunk/tests/integration-tests/src/test/java/org/hornetq/tests/integration/cluster/failover/BackupSyncJournalTest.java
===================================================================
--- trunk/tests/integration-tests/src/test/java/org/hornetq/tests/integration/cluster/failover/BackupSyncJournalTest.java	2012-02-23 09:40:07 UTC (rev 12177)
+++ trunk/tests/integration-tests/src/test/java/org/hornetq/tests/integration/cluster/failover/BackupSyncJournalTest.java	2012-02-23 09:40:37 UTC (rev 12178)
@@ -25,7 +25,7 @@
    private static final int BACKUP_WAIT_TIME = 20;
    private ServerLocatorInternal locator;
    protected ClientSessionFactoryInternal sessionFactory;
-   private ClientSession session;
+   protected ClientSession session;
    private ClientProducer producer;
    private BackupSyncDelay syncDelay;
    protected int n_msgs = 20;
@@ -171,9 +171,11 @@
 
    protected void createProducerSendSomeMessages() throws HornetQException, Exception
    {
-      session = sessionFactory.createSession(true, true);
+      session = addClientSession(sessionFactory.createSession(true, true));
       session.createQueue(FailoverTestBase.ADDRESS, FailoverTestBase.ADDRESS, null, true);
-      producer = session.createProducer(FailoverTestBase.ADDRESS);
+      if (producer != null)
+         producer.close();
+      producer = addClientProducer(session.createProducer(FailoverTestBase.ADDRESS));
       sendMessages(session, producer, n_msgs);
       session.commit();
    }
@@ -181,7 +183,7 @@
    protected void receiveMsgsInRange(int start, int end) throws HornetQException
    {
       session.start();
-      ClientConsumer consumer = session.createConsumer(FailoverTestBase.ADDRESS);
+      ClientConsumer consumer = addClientConsumer(session.createConsumer(FailoverTestBase.ADDRESS));
       receiveMessages(consumer, start, end, true);
       consumer.close();
       session.commit();
@@ -225,16 +227,6 @@
    }
 
    @Override
-   protected void tearDown() throws Exception
-   {
-      if (session != null)
-         session.close();
-      if (producer != null)
-         producer.close();
-      super.tearDown();
-   }
-
-   @Override
    protected void createConfigs() throws Exception
    {
       createReplicatedConfigs();

Modified: trunk/tests/integration-tests/src/test/java/org/hornetq/tests/integration/cluster/failover/BackupSyncLargeMessageTest.java
===================================================================
--- trunk/tests/integration-tests/src/test/java/org/hornetq/tests/integration/cluster/failover/BackupSyncLargeMessageTest.java	2012-02-23 09:40:07 UTC (rev 12177)
+++ trunk/tests/integration-tests/src/test/java/org/hornetq/tests/integration/cluster/failover/BackupSyncLargeMessageTest.java	2012-02-23 09:40:37 UTC (rev 12178)
@@ -52,7 +52,12 @@
       createProducerSendSomeMessages();
       startBackupFinishSyncing();
       receiveMsgsInRange(0, n_msgs / 2);
-      backupServer.stop();
+      int j = 0;
+      while (getAllMessageFileIds(dir).size() != n_msgs / 2 && j < 20)
+      {
+         Thread.sleep(50);
+         j++;
+      }
       assertEquals("we really ought to delete these after delivery", n_msgs / 2, getAllMessageFileIds(dir).size());
    }
 

Modified: trunk/tests/integration-tests/src/test/java/org/hornetq/tests/integration/cluster/failover/FailoverTestBase.java
===================================================================
--- trunk/tests/integration-tests/src/test/java/org/hornetq/tests/integration/cluster/failover/FailoverTestBase.java	2012-02-23 09:40:07 UTC (rev 12177)
+++ trunk/tests/integration-tests/src/test/java/org/hornetq/tests/integration/cluster/failover/FailoverTestBase.java	2012-02-23 09:40:37 UTC (rev 12178)
@@ -268,13 +268,13 @@
 	protected ClientSessionFactoryInternal createSessionFactoryAndWaitForTopology(ServerLocator locator, int topologyMembers)
 	        throws Exception
 	{
-		ClientSessionFactoryInternal sf;
 		CountDownLatch countDownLatch = new CountDownLatch(topologyMembers);
 
 		locator.addClusterTopologyListener(new LatchClusterTopologyListener(countDownLatch));
 
-		sf = (ClientSessionFactoryInternal) locator.createSessionFactory();
+      ClientSessionFactoryInternal sf = (ClientSessionFactoryInternal)locator.createSessionFactory();
 		addSessionFactory(sf);
+
 		assertTrue("topology members expected " + topologyMembers, countDownLatch.await(5, TimeUnit.SECONDS));
 		return sf;
 	}



More information about the hornetq-commits mailing list