You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2012/07/04 19:43:09 UTC
svn commit: r1357345 - in /lucene/dev/branches/branch_4x/lucene: ./
core/src/java/org/apache/lucene/index/ core/src/test/org/apache/lucene/index/
Author: rmuir
Date: Wed Jul 4 17:43:09 2012
New Revision: 1357345
URL: http://svn.apache.org/viewvc?rev=1357345&view=rev
Log:
LUCENE-4190: don't delete files in the index directory unless they begin with an underscore
Modified:
lucene/dev/branches/branch_4x/lucene/CHANGES.txt
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFileDeleter.java
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestDoc.java
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
Modified: lucene/dev/branches/branch_4x/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/CHANGES.txt?rev=1357345&r1=1357344&r2=1357345&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/lucene/CHANGES.txt Wed Jul 4 17:43:09 2012
@@ -14,6 +14,11 @@ New features
create automata from a fixed collection of UTF-8 encoded BytesRef
(Dawid Weiss, Robert Muir)
+Changes in Runtime Behavior
+
+* LUCENE-4190: Don't delete files in the index directory unless they
+ begin with an underscore. (Mike McCandless, Robert Muir)
+
API Changes
* LUCENE-4138: update of morfologik (Polish morphological analyzer) to 1.5.3.
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFileDeleter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFileDeleter.java?rev=1357345&r1=1357344&r2=1357345&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFileDeleter.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFileDeleter.java Wed Jul 4 17:43:09 2012
@@ -149,7 +149,8 @@ final class IndexFileDeleter {
for (String fileName : files) {
- if (!fileName.endsWith("write.lock") && !fileName.equals(IndexFileNames.SEGMENTS_GEN)) {
+ if (!fileName.endsWith("write.lock") && !fileName.equals(IndexFileNames.SEGMENTS_GEN)
+ && (fileName.startsWith("_") || fileName.startsWith(IndexFileNames.SEGMENTS))) {
// Add this file to refCounts with initial count 0:
getRefCount(fileName);
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java?rev=1357345&r1=1357344&r2=1357345&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java Wed Jul 4 17:43:09 2012
@@ -253,14 +253,27 @@ public final class SegmentInfo {
public void setFiles(Set<String> files) {
setFiles = files;
sizeInBytes = -1;
+ assert assertSaneFileNames();
}
public void addFiles(Collection<String> files) {
setFiles.addAll(files);
+ sizeInBytes = -1;
+ assert assertSaneFileNames();
}
public void addFile(String file) {
setFiles.add(file);
+ sizeInBytes = -1;
+ assert assertSaneFileNames();
+ }
+
+ // used only by assert
+ private boolean assertSaneFileNames() {
+ for (String file : setFiles) {
+ assert file.startsWith("_") : "invalid codec filename: " + file ;
+ }
+ return true;
}
/**
Modified: lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestDoc.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestDoc.java?rev=1357345&r1=1357344&r2=1357345&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestDoc.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestDoc.java Wed Jul 4 17:43:09 2012
@@ -125,13 +125,13 @@ public class TestDoc extends LuceneTestC
printSegment(out, si2);
writer.close();
- SegmentInfoPerCommit siMerge = merge(directory, si1, si2, "merge", false);
+ SegmentInfoPerCommit siMerge = merge(directory, si1, si2, "_merge", false);
printSegment(out, siMerge);
- SegmentInfoPerCommit siMerge2 = merge(directory, si1, si2, "merge2", false);
+ SegmentInfoPerCommit siMerge2 = merge(directory, si1, si2, "_merge2", false);
printSegment(out, siMerge2);
- SegmentInfoPerCommit siMerge3 = merge(directory, siMerge, siMerge2, "merge3", false);
+ SegmentInfoPerCommit siMerge3 = merge(directory, siMerge, siMerge2, "_merge3", false);
printSegment(out, siMerge3);
directory.close();
@@ -160,13 +160,13 @@ public class TestDoc extends LuceneTestC
printSegment(out, si2);
writer.close();
- siMerge = merge(directory, si1, si2, "merge", true);
+ siMerge = merge(directory, si1, si2, "_merge", true);
printSegment(out, siMerge);
- siMerge2 = merge(directory, si1, si2, "merge2", true);
+ siMerge2 = merge(directory, si1, si2, "_merge2", true);
printSegment(out, siMerge2);
- siMerge3 = merge(directory, siMerge, siMerge2, "merge3", true);
+ siMerge3 = merge(directory, siMerge, siMerge2, "_merge3", true);
printSegment(out, siMerge3);
directory.close();
Modified: lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=1357345&r1=1357344&r2=1357345&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java Wed Jul 4 17:43:09 2012
@@ -45,6 +45,7 @@ import org.apache.lucene.search.ScoreDoc
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.store.AlreadyClosedException;
import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.IndexOutput;
import org.apache.lucene.store.Lock;
import org.apache.lucene.store.LockFactory;
import org.apache.lucene.store.LockObtainFailedException;
@@ -1799,4 +1800,23 @@ public class TestIndexWriter extends Luc
r.close();
dir.close();
}
+
+ //LUCENE-1468 -- make sure opening an IndexWriter with
+ // create=true does not remove non-index files
+
+ public void testOtherFiles() throws Throwable {
+ Directory dir = newDirectory();
+ try {
+ // Create my own random file:
+ IndexOutput out = dir.createOutput("myrandomfile", newIOContext(random()));
+ out.writeByte((byte) 42);
+ out.close();
+
+ new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random()))).close();
+
+ assertTrue(dir.fileExists("myrandomfile"));
+ } finally {
+ dir.close();
+ }
+ }
}