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);
         }
     }
 


Reply via email to