[hornetq-commits] JBoss hornetq SVN: r8595 - in trunk: tests/src/org/hornetq/tests/integration/journal and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Sun Dec 6 11:30:58 EST 2009


Author: clebert.suconic at jboss.com
Date: 2009-12-06 11:30:57 -0500 (Sun, 06 Dec 2009)
New Revision: 8595

Modified:
   trunk/src/main/org/hornetq/core/journal/impl/JournalImpl.java
   trunk/tests/src/org/hornetq/tests/integration/journal/ValidateTransactionHealthTest.java
Log:
HORNETQ-237 - Fix for tmp files on the journal

Modified: trunk/src/main/org/hornetq/core/journal/impl/JournalImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/journal/impl/JournalImpl.java	2009-12-06 14:16:57 UTC (rev 8594)
+++ trunk/src/main/org/hornetq/core/journal/impl/JournalImpl.java	2009-12-06 16:30:57 UTC (rev 8595)
@@ -2904,16 +2904,11 @@
          trace("Creating file " + fileName);
       }
 
-      SequentialFile sequentialFile = fileFactory.createSequentialFile(fileName, maxAIO);
+      String tmpFileName = fileName + ".tmp";
+      
+      SequentialFile sequentialFile = fileFactory.createSequentialFile(tmpFileName, maxAIO);
 
-      if (multiAIO)
-      {
-         sequentialFile.open();
-      }
-      else
-      {
-         sequentialFile.open(1, false);
-      }
+      sequentialFile.open(1, false);
 
       if (fill)
       {
@@ -2928,14 +2923,25 @@
          sequentialFile.writeDirect(bb, true);
       }
 
-      JournalFile info = new JournalFileImpl(sequentialFile, fileID);
 
-      if (!keepOpened)
+      sequentialFile.close();
+
+      sequentialFile.renameTo(fileName);
+
+      if (keepOpened)
       {
-         sequentialFile.close();
+
+         if (multiAIO)
+         {
+            sequentialFile.open();
+         }
+         else
+         {
+            sequentialFile.open(1, false);
+         }
       }
 
-      return info;
+      return new JournalFileImpl(sequentialFile, fileID);
    }
 
    private void openFile(final JournalFile file, final boolean multiAIO) throws Exception
@@ -3233,8 +3239,20 @@
          controlFile.delete();
       }
 
-      List<String> leftFiles = fileFactory.listFiles(getFileExtension() + ".cmp");
+      cleanupTmpFiles(".cmp");
 
+      cleanupTmpFiles(".tmp");
+
+      return;
+   }
+
+   /**
+    * @throws Exception
+    */
+   private void cleanupTmpFiles(final String extension) throws Exception
+   {
+      List<String> leftFiles = fileFactory.listFiles(getFileExtension() + extension);
+
       if (leftFiles.size() > 0)
       {
          log.warn("Compacted files were left unnatended on journal directory, deleting invalid files now");
@@ -3246,8 +3264,6 @@
             file.delete();
          }
       }
-
-      return;
    }
 
    private static boolean isInvalidSize(final int fileSize, final int bufferPos, final int size)

Modified: trunk/tests/src/org/hornetq/tests/integration/journal/ValidateTransactionHealthTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/journal/ValidateTransactionHealthTest.java	2009-12-06 14:16:57 UTC (rev 8594)
+++ trunk/tests/src/org/hornetq/tests/integration/journal/ValidateTransactionHealthTest.java	2009-12-06 16:30:57 UTC (rev 8595)
@@ -301,9 +301,6 @@
       try
       {
          Journal journal = appendData(journalType, journalDir, numberOfElements, transactionSize, numberOfThreads);
-         
-         journal.stop();
-
       }
       catch (Exception e)
       {
@@ -313,7 +310,7 @@
 
       System.exit(OK);
    }
-
+   
    public static JournalImpl appendData(String journalType,
                                         String journalDir,
                                         long numberOfElements,



More information about the hornetq-commits mailing list