You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by bu...@apache.org on 2011/01/17 10:50:51 UTC

svn commit: r1059837 - in /lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index: DocumentsWriter.java DocumentsWriterPerThread.java IndexWriter.java

Author: buschmi
Date: Mon Jan 17 09:50:51 2011
New Revision: 1059837

URL: http://svn.apache.org/viewvc?rev=1059837&view=rev
Log:
LUCENE-2324: cleanup segment files when aborting in segment flush)

Modified:
    lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/DocumentsWriter.java
    lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java
    lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/IndexWriter.java

Modified: lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/DocumentsWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/DocumentsWriter.java?rev=1059837&r1=1059836&r2=1059837&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/DocumentsWriter.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/DocumentsWriter.java Mon Jan 17 09:50:51 2011
@@ -338,7 +338,6 @@ final class DocumentsWriter {
 
       success = true;
     } finally {
-      notifyAll();
       if (infoStream != null) {
         message("docWriter: done abort; abortedFiles=" + abortedFiles + " success=" + success);
       }
@@ -395,9 +394,8 @@ final class DocumentsWriter {
     return false;
   }
 
-  synchronized void close() {
+  void close() {
     closed = true;
-    notifyAll();
   }
 
   boolean updateDocument(final Document doc, final Analyzer analyzer, final Term delTerm)
@@ -512,6 +510,7 @@ final class DocumentsWriter {
       ThreadState perThread = threadsIterator.next();
       perThread.lock();
       try {
+
         DocumentsWriterPerThread dwpt = perThread.perThread;
         final int numDocs = dwpt.getNumDocsInRAM();
 

Modified: lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java?rev=1059837&r1=1059836&r2=1059837&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java Mon Jan 17 09:50:51 2011
@@ -305,6 +305,12 @@ public class DocumentsWriterPerThread {
       return newSegment;
     } finally {
       if (!success) {
+        if (segment != null) {
+          synchronized(parent.indexWriter) {
+            parent.indexWriter.deleter.refresh(segment);
+          }
+        }
+
         abort();
       }
     }

Modified: lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/IndexWriter.java?rev=1059837&r1=1059836&r2=1059837&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/IndexWriter.java Mon Jan 17 09:50:51 2011
@@ -222,7 +222,7 @@ public class IndexWriter implements Clos
   final SegmentInfos segmentInfos;       // the segments
 
   private DocumentsWriter docWriter;
-  private final IndexFileDeleter deleter;
+  final IndexFileDeleter deleter;
 
   private Set<SegmentInfo> segmentsToOptimize = new HashSet<SegmentInfo>();           // used by optimize to note those needing optimization
   private int optimizeMaxNumSegments;