[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