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 2014/10/01 19:55:48 UTC
svn commit: r1628784 - in
/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index:
CheckIndex.java IndexWriter.java
Author: mikemccand
Date: Wed Oct 1 17:55:48 2014
New Revision: 1628784
URL: http://svn.apache.org/r1628784
Log:
CheckIndex and IndexWriter (w/ APPEND open mode) should not use SIS retry logic
Modified:
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java?rev=1628784&r1=1628783&r2=1628784&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java Wed Oct 1 17:55:48 2014
@@ -24,6 +24,7 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.NumberFormat;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
@@ -455,8 +456,15 @@ public class CheckIndex implements Close
SegmentInfos sis = new SegmentInfos();
Status result = new Status();
result.dir = dir;
+ String[] files = dir.listAll();
+ String lastSegmentsFile = SegmentInfos.getLastCommitSegmentsFileName(files);
+ if (lastSegmentsFile == null) {
+ throw new IndexNotFoundException("no segments* file found in " + dir + ": files: " + Arrays.toString(files));
+ }
try {
- sis.read(dir);
+ // Do not use SegmentInfos.read(Directory) since the spooky
+ // retrying it does is not necessary here (we hold the write lock):
+ sis.read(dir, lastSegmentsFile);
} catch (Throwable t) {
if (failFast) {
IOUtils.reThrow(t);
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java?rev=1628784&r1=1628783&r2=1628784&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java Wed Oct 1 17:55:48 2014
@@ -794,7 +794,15 @@ public class IndexWriter implements Clos
// segments) pending:
changed();
} else {
- segmentInfos.read(directory);
+ String[] files = directory.listAll();
+ String lastSegmentsFile = SegmentInfos.getLastCommitSegmentsFileName(files);
+ if (lastSegmentsFile == null) {
+ throw new IndexNotFoundException("no segments* file found in " + directory + ": files: " + Arrays.toString(files));
+ }
+
+ // Do not use SegmentInfos.read(Directory) since the spooky
+ // retrying it does is not necessary here (we hold the write lock):
+ segmentInfos.read(directory, lastSegmentsFile);
IndexCommit commit = config.getIndexCommit();
if (commit != null) {