[hornetq-commits] JBoss hornetq SVN: r11119 - branches/HORNETQ-720_Replication/hornetq-core/src/main/java/org/hornetq/core/persistence/impl/journal.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Aug 4 11:26:35 EDT 2011
Author: borges
Date: 2011-08-04 11:26:34 -0400 (Thu, 04 Aug 2011)
New Revision: 11119
Modified:
branches/HORNETQ-720_Replication/hornetq-core/src/main/java/org/hornetq/core/persistence/impl/journal/JournalStorageManager.java
Log:
HORNETQ-720 Make sure autoReclaim is reset to its original value after we are done.
Modified: branches/HORNETQ-720_Replication/hornetq-core/src/main/java/org/hornetq/core/persistence/impl/journal/JournalStorageManager.java
===================================================================
--- branches/HORNETQ-720_Replication/hornetq-core/src/main/java/org/hornetq/core/persistence/impl/journal/JournalStorageManager.java 2011-08-04 14:00:25 UTC (rev 11118)
+++ branches/HORNETQ-720_Replication/hornetq-core/src/main/java/org/hornetq/core/persistence/impl/journal/JournalStorageManager.java 2011-08-04 15:26:34 UTC (rev 11119)
@@ -366,38 +366,56 @@
JournalFile[] messageFiles = null;
JournalFile[] bindingsFiles = null;
- // XXX HORNETQ-720 WRITE LOCK the StorageManager.
- storageManagerLock.writeLock().lock();
+ final JournalImpl localMessageJournal = (JournalImpl)messageJournal;
+ final JournalImpl localBindingsJournal = (JournalImpl)bindingsJournal;
+
+ final boolean messageJournalAutoReclaim = localMessageJournal.getAutoReclaim();
+ final boolean bindingsJournalAutoReclaim = localBindingsJournal.getAutoReclaim();
+
try
{
- final JournalImpl localMessageJournal = (JournalImpl)messageJournal;
- final JournalImpl localBindingsJournal = (JournalImpl)bindingsJournal;
+ // XXX HORNETQ-720 WRITE LOCK the StorageManager.
+ storageManagerLock.writeLock().lock();
+ try
+ {
-
- localMessageJournal.writeLock();
- localBindingsJournal.writeLock();
+ localMessageJournal.writeLock();
+ localBindingsJournal.writeLock();
+ try
+ {
+ messageFiles = prepareJournalForCopy(localMessageJournal, JournalContent.MESSAGES);
+ bindingsFiles = prepareJournalForCopy(localBindingsJournal, JournalContent.BINDINGS);
+ }
+ finally
+ {
+ localMessageJournal.writeUnlock();
+ localBindingsJournal.writeUnlock();
+ }
+ bindingsJournal = new ReplicatedJournal(((byte)0), localBindingsJournal, replicator);
+ messageJournal = new ReplicatedJournal((byte)1, localMessageJournal, replicator);
+ }
+ finally
+ {
+ // XXX HORNETQ-720 UNLOCK StorageManager...
+ storageManagerLock.writeLock().unlock();
+ }
+ sendJournalFile(messageFiles, JournalContent.MESSAGES);
+ sendJournalFile(bindingsFiles, JournalContent.BINDINGS);
try
{
- messageFiles = prepareJournalForCopy(localMessageJournal, JournalContent.MESSAGES);
- bindingsFiles = prepareJournalForCopy(localBindingsJournal, JournalContent.BINDINGS);
+ storageManagerLock.writeLock().lock();
+ replicator.sendSynchronizationDone();
}
finally
{
- localMessageJournal.writeUnlock();
- localBindingsJournal.writeUnlock();
+ storageManagerLock.writeLock().unlock();
}
- bindingsJournal = new ReplicatedJournal(((byte)0), localBindingsJournal, replicator);
- messageJournal = new ReplicatedJournal((byte)1, localMessageJournal, replicator);
}
finally
{
- // XXX HORNETQ-720 UNLOCK StorageManager...
- storageManagerLock.writeLock().unlock();
+ localMessageJournal.setAutoReclaim(messageJournalAutoReclaim);
+ localBindingsJournal.setAutoReclaim(bindingsJournalAutoReclaim);
}
- sendJournalFile(messageFiles, JournalContent.MESSAGES);
- sendJournalFile(bindingsFiles, JournalContent.BINDINGS);
-
- replicator.sendSynchronizationDone();
}
/**
More information about the hornetq-commits
mailing list