[hornetq-commits] JBoss hornetq SVN: r12182 - 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 09:19:04 EST 2012


Author: borges
Date: 2012-02-23 09:19:03 -0500 (Thu, 23 Feb 2012)
New Revision: 12182

Modified:
   trunk/hornetq-journal/src/main/java/org/hornetq/core/journal/impl/JournalFilesRepository.java
   trunk/tests/integration-tests/src/test/java/org/hornetq/tests/integration/cluster/failover/BackupSyncJournalTest.java
Log:
HORNETQ-720 Fix test, exact match for sync'ed journal files and match records for 'regular' replicated journal files.

Modified: trunk/hornetq-journal/src/main/java/org/hornetq/core/journal/impl/JournalFilesRepository.java
===================================================================
--- trunk/hornetq-journal/src/main/java/org/hornetq/core/journal/impl/JournalFilesRepository.java	2012-02-23 14:18:38 UTC (rev 12181)
+++ trunk/hornetq-journal/src/main/java/org/hornetq/core/journal/impl/JournalFilesRepository.java	2012-02-23 14:19:03 UTC (rev 12182)
@@ -83,7 +83,7 @@
 
    private Executor openFilesExecutor;
    
-   private Runnable pushOpenRunnable = new Runnable()
+   private final Runnable pushOpenRunnable = new Runnable()
    {
       public void run()
       {

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 14:18:38 UTC (rev 12181)
+++ trunk/tests/integration-tests/src/test/java/org/hornetq/tests/integration/cluster/failover/BackupSyncJournalTest.java	2012-02-23 14:19:03 UTC (rev 12182)
@@ -4,6 +4,7 @@
 import java.util.Set;
 
 import org.hornetq.api.core.HornetQException;
+import org.hornetq.api.core.Pair;
 import org.hornetq.api.core.TransportConfiguration;
 import org.hornetq.api.core.client.ClientConsumer;
 import org.hornetq.api.core.client.ClientMessage;
@@ -62,11 +63,13 @@
          messageJournal.forceMoveNextFile();
          sendMessages(session, producer, n_msgs);
       }
+      Set<Pair<Long, Integer>> preSyncFileIDs = getFileIds(messageJournal);
 
       backupServer.start();
 
       // Deliver messages with Backup in-sync
       waitForRemoteBackup(sessionFactory, BACKUP_WAIT_TIME, false, backupServer.getServer());
+      final JournalImpl backupMsgJournal = getMessageJournalFromServer(backupServer);
       sendMessages(session, producer, n_msgs);
 
       // Deliver messages with Backup up-to-date
@@ -75,7 +78,7 @@
       // SEND more messages, now with the backup replicating
       sendMessages(session, producer, n_msgs);
 
-      Set<Long> liveIds = getFileIds(messageJournal);
+      Set<Pair<Long, Integer>> liveIds = getFileIds(messageJournal);
       int size = messageJournal.getFileSize();
       PagingStore ps = liveServer.getServer().getPagingManager().getPageStore(ADDRESS);
       if (ps.getPageSizeBytes() == PAGE_SIZE)
@@ -85,12 +88,26 @@
       }
       finishSyncAndFailover();
 
-      JournalImpl backupMsgJournal = getMessageJournalFromServer(backupServer);
-
       assertEquals("file sizes must be the same", size, backupMsgJournal.getFileSize());
-      Set<Long> backupIds = getFileIds(backupMsgJournal);
-      assertEquals("File IDs must match!", liveIds, backupIds);
+      Set<Pair<Long, Integer>> backupIds = getFileIds(backupMsgJournal);
 
+      for (Pair<Long, Integer> pair : preSyncFileIDs)
+      {
+         assertTrue("sanity check", liveIds.remove(pair));
+         assertTrue("backup must have the same file " + pair, backupIds.remove(pair));
+      }
+      int total = 0;
+      for (Pair<Long, Integer> pair : liveIds)
+      {
+         total += pair.getB();
+      }
+      int totalBackup = 0;
+      for (Pair<Long, Integer> pair : backupIds)
+      {
+         totalBackup += pair.getB();
+      }
+      assertEquals("number of records must match ", total, totalBackup);
+
       // "+ 2": there two other calls that send N_MSGS.
       for (int i = 0; i < totalRounds + 3; i++)
       {
@@ -210,16 +227,26 @@
       }
    }
 
-   private Set<Long> getFileIds(JournalImpl journal)
+   private Set<Pair<Long, Integer>> getFileIds(JournalImpl journal)
    {
-      Set<Long> results = new HashSet<Long>();
+      Set<Pair<Long, Integer>> results = new HashSet<Pair<Long, Integer>>();
       for (JournalFile jf : journal.getDataFiles())
       {
-         results.add(Long.valueOf(jf.getFileID()));
+         results.add(getPair(jf));
       }
+      results.add(getPair(journal.getCurrentFile()));
       return results;
    }
 
+   /**
+    * @param jf
+    * @return
+    */
+   private Pair<Long, Integer> getPair(JournalFile jf)
+   {
+      return new Pair<Long, Integer>(jf.getFileID(), jf.getPosCount());
+   }
+
    static JournalImpl getMessageJournalFromServer(TestableServer server)
    {
       JournalStorageManager sm = (JournalStorageManager)server.getServer().getStorageManager();



More information about the hornetq-commits mailing list