[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