You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2009/02/06 16:54:20 UTC

svn commit: r741600 - /activemq/trunk/kahadb/src/main/java/org/apache/kahadb/journal/Journal.java

Author: chirino
Date: Fri Feb  6 15:54:19 2009
New Revision: 741600

URL: http://svn.apache.org/viewvc?rev=741600&view=rev
Log:
Making the removeDataFile a little smarter to avoid removing data files that are still being worked on

Modified:
    activemq/trunk/kahadb/src/main/java/org/apache/kahadb/journal/Journal.java

Modified: activemq/trunk/kahadb/src/main/java/org/apache/kahadb/journal/Journal.java
URL: http://svn.apache.org/viewvc/activemq/trunk/kahadb/src/main/java/org/apache/kahadb/journal/Journal.java?rev=741600&r1=741599&r2=741600&view=diff
==============================================================================
--- activemq/trunk/kahadb/src/main/java/org/apache/kahadb/journal/Journal.java (original)
+++ activemq/trunk/kahadb/src/main/java/org/apache/kahadb/journal/Journal.java Fri Feb  6 15:54:19 2009
@@ -295,12 +295,14 @@
 
     public synchronized void removeDataFiles(Set<Integer> files) throws IOException {
         for (Integer key : files) {
+            // Can't remove the data file (or subsequent files) that is currently being written to.
+        	if( key >= lastAppendLocation.get().getDataFileId() ) {
+        		continue;
+        	}
             DataFile dataFile = fileMap.get(key);
-            // Can't remove the last file.
-            if( dataFile == dataFiles.getTail() ) {
-                continue;
+            if( dataFile!=null ) {
+            	forceRemoveDataFile(dataFile);
             }
-            forceRemoveDataFile(dataFile);
         }
     }