You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2010/11/16 16:03:50 UTC

svn commit: r1035651 - in /lucene/dev/trunk/lucene/src: java/org/apache/lucene/index/IndexFileDeleter.java java/org/apache/lucene/index/IndexWriter.java test/org/apache/lucene/index/TestAddIndexes.java

Author: mikemccand
Date: Tue Nov 16 15:03:50 2010
New Revision: 1035651

URL: http://svn.apache.org/viewvc?rev=1035651&view=rev
Log:
LUCENE-2767: add 2 missing sync's in IW when it invokes IFD

Modified:
    lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexFileDeleter.java
    lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexWriter.java
    lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAddIndexes.java

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexFileDeleter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexFileDeleter.java?rev=1035651&r1=1035650&r2=1035651&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexFileDeleter.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexFileDeleter.java Tue Nov 16 15:03:50 2010
@@ -602,13 +602,13 @@ final class IndexFileDeleter {
       if (!initDone) {
         initDone = true;
       } else {
-        assert count > 0: "RefCount is 0 pre-increment for file \"" + fileName + "\"";
+        assert count > 0: Thread.currentThread().getName() + ": RefCount is 0 pre-increment for file \"" + fileName + "\"";
       }
       return ++count;
     }
 
     public int DecRef() {
-      assert count > 0: "RefCount is 0 pre-decrement for file \"" + fileName + "\"";
+      assert count > 0: Thread.currentThread().getName() + ": RefCount is 0 pre-decrement for file \"" + fileName + "\"";
       return --count;
     }
   }

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexWriter.java?rev=1035651&r1=1035650&r2=1035651&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexWriter.java Tue Nov 16 15:03:50 2010
@@ -3049,7 +3049,9 @@ public class IndexWriter implements Clos
               checkpoint();
             }
           } finally {
-            deleter.decRef(files);
+            synchronized(this) {
+              deleter.decRef(files);
+            }
           }
         }
       }
@@ -4253,7 +4255,9 @@ public class IndexWriter implements Clos
       if (merge.isAborted()) {
         if (infoStream != null)
           message("abort merge after building CFS");
-        deleter.deleteFile(compoundFileName);
+        synchronized(this) {
+          deleter.deleteFile(compoundFileName);
+        }
         return 0;
       }
 

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAddIndexes.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAddIndexes.java?rev=1035651&r1=1035650&r2=1035651&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAddIndexes.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAddIndexes.java Tue Nov 16 15:03:50 2010
@@ -677,20 +677,35 @@ public class TestAddIndexes extends Luce
     void doBody(int j, Directory[] dirs) throws Throwable {
       switch(j%5) {
       case 0:
+        if (VERBOSE) {
+          System.out.println(Thread.currentThread().getName() + ": TEST: addIndexes(Dir[]) then optimize");
+        }
         writer2.addIndexes(dirs);
         writer2.optimize();
         break;
       case 1:
+        if (VERBOSE) {
+          System.out.println(Thread.currentThread().getName() + ": TEST: addIndexes(Dir[])");
+        }
         writer2.addIndexes(dirs);
         break;
       case 2:
+        if (VERBOSE) {
+          System.out.println(Thread.currentThread().getName() + ": TEST: addIndexes(IndexReader[])");
+        }
         writer2.addIndexes(readers);
         break;
       case 3:
+        if (VERBOSE) {
+          System.out.println(Thread.currentThread().getName() + ": TEST: addIndexes(Dir[]) then maybeMerge");
+        }
         writer2.addIndexes(dirs);
         writer2.maybeMerge();
         break;
       case 4:
+        if (VERBOSE) {
+          System.out.println(Thread.currentThread().getName() + ": TEST: commit");
+        }
         writer2.commit();
       }
     }
@@ -703,6 +718,7 @@ public class TestAddIndexes extends Luce
     final int NUM_ITER = 15;
     final int NUM_COPY = 3;
     CommitAndAddIndexes c = new CommitAndAddIndexes(NUM_COPY);
+    c.writer2.setInfoStream(VERBOSE ? System.out : null);
     c.launchThreads(NUM_ITER);
 
     for(int i=0;i<100;i++)