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();
}
/**
Show replies by date