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 2014/06/03 13:20:32 UTC
svn commit: r1599477 - in /lucene/dev/branches/branch_4x: lucene/
lucene/core/src/java/org/apache/lucene/codecs/lucene3x/
lucene/core/src/java/org/apache/lucene/store/
lucene/core/src/test/org/apache/lucene/codecs/lucene3x/
lucene/facet/src/test/org/ap...
Author: rmuir
Date: Tue Jun 3 11:20:31 2014
New Revision: 1599477
URL: http://svn.apache.org/r1599477
Log:
LUCENE-5727: Remove indexoutput.seek
Added:
lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreflexRWSegmentTermEnum.java (with props)
Modified:
lucene/dev/branches/branch_4x/lucene/CHANGES.txt
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xFields.java
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/codecs/lucene3x/SegmentTermEnum.java
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/codecs/lucene3x/TermInfosReader.java
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/BufferedIndexOutput.java
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/CompoundFileWriter.java
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/FSDirectory.java
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/IndexOutput.java
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/RAMOutputStream.java
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/RateLimitedIndexOutput.java
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/codecs/lucene3x/TestTermInfosReaderIndex.java
lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/SlowRAMDirectory.java
lucene/dev/branches/branch_4x/lucene/misc/src/java/org/apache/lucene/store/NativeUnixDirectory.java
lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreFlexRWPostingsFormat.java
lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/TermInfosWriter.java
lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java
lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/store/MockIndexOutputWrapper.java
lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/ThrottledIndexOutput.java
lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/store/blockcache/ReusedBufferedIndexOutput.java
lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/store/hdfs/NullIndexOutput.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=1599477&r1=1599476&r2=1599477&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/lucene/CHANGES.txt Tue Jun 3 11:20:31 2014
@@ -46,6 +46,8 @@ Changes in Backwards Compatibility Polic
* LUCENE-4371: Removed IndexInputSlicer and Directory.createSlicer() and replaced
with IndexInput.slice(). (Robert Muir)
+* LUCENE-5727: Remove IndexOutput.seek (Robert Muir)
+
API Changes
* LUCENE-5725: MoreLikeThis#like now accetps multiple values per field.
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xFields.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xFields.java?rev=1599477&r1=1599476&r2=1599477&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xFields.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xFields.java Tue Jun 3 11:20:31 2014
@@ -82,7 +82,7 @@ class Lucene3xFields extends FieldsProdu
boolean success = false;
try {
- TermInfosReader r = new TermInfosReader(dir, info.name, fieldInfos, context, indexDivisor);
+ TermInfosReader r = newTermInfosReader(dir, info.name, fieldInfos, context, indexDivisor);
if (indexDivisor == -1) {
tisNoIndex = r;
} else {
@@ -133,6 +133,11 @@ class Lucene3xFields extends FieldsProdu
protected boolean sortTermsByUnicode() {
return true;
}
+
+ // only overridden during testing
+ protected TermInfosReader newTermInfosReader(Directory dir, String name, FieldInfos fieldInfos, IOContext context, int indexDivisor) throws IOException {
+ return new TermInfosReader(dir, name, fieldInfos, context, indexDivisor);
+ }
@Override
public Iterator<String> iterator() {
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/codecs/lucene3x/SegmentTermEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/codecs/lucene3x/SegmentTermEnum.java?rev=1599477&r1=1599476&r2=1599477&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/codecs/lucene3x/SegmentTermEnum.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/codecs/lucene3x/SegmentTermEnum.java Tue Jun 3 11:20:31 2014
@@ -32,7 +32,7 @@ import org.apache.lucene.index.IndexForm
* @lucene.experimental */
@Deprecated
-final class SegmentTermEnum implements Cloneable,Closeable {
+class SegmentTermEnum implements Cloneable,Closeable {
private IndexInput input;
FieldInfos fieldInfos;
long size;
@@ -90,7 +90,7 @@ final class SegmentTermEnum implements C
if (format < FORMAT_CURRENT)
throw new IndexFormatTooNewException(input, format, FORMAT_MINIMUM, FORMAT_CURRENT);
- size = input.readLong(); // read the size
+ size = readSize(input); // read the size
indexInterval = input.readInt();
skipInterval = input.readInt();
@@ -99,6 +99,11 @@ final class SegmentTermEnum implements C
assert skipInterval > 0: "skipInterval=" + skipInterval + " is negative; must be > 0";
}
}
+
+ // only overridden for testing
+ protected long readSize(IndexInput input) throws IOException {
+ return input.readLong();
+ }
@Override
protected SegmentTermEnum clone() {
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/codecs/lucene3x/TermInfosReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/codecs/lucene3x/TermInfosReader.java?rev=1599477&r1=1599476&r2=1599477&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/codecs/lucene3x/TermInfosReader.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/codecs/lucene3x/TermInfosReader.java Tue Jun 3 11:20:31 2014
@@ -27,6 +27,7 @@ import org.apache.lucene.index.IndexFile
import org.apache.lucene.index.Term;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.IOContext;
+import org.apache.lucene.store.IndexInput;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.CloseableThreadLocal;
import org.apache.lucene.util.DoubleBarrelLRUCache;
@@ -40,7 +41,7 @@ import org.apache.lucene.util.IOUtils;
* @lucene.experimental
*/
@Deprecated
-final class TermInfosReader implements Closeable {
+class TermInfosReader implements Closeable {
private final Directory directory;
private final String segment;
private final FieldInfos fieldInfos;
@@ -111,7 +112,7 @@ final class TermInfosReader implements C
segment = seg;
fieldInfos = fis;
- origEnum = new SegmentTermEnum(directory.openInput(IndexFileNames.segmentFileName(segment, "", Lucene3xPostingsFormat.TERMS_EXTENSION),
+ origEnum = newSegmentTermEnum(directory.openInput(IndexFileNames.segmentFileName(segment, "", Lucene3xPostingsFormat.TERMS_EXTENSION),
context), fieldInfos, false);
size = origEnum.size;
@@ -121,7 +122,7 @@ final class TermInfosReader implements C
totalIndexInterval = origEnum.indexInterval * indexDivisor;
final String indexFileName = IndexFileNames.segmentFileName(segment, "", Lucene3xPostingsFormat.TERMS_INDEX_EXTENSION);
- final SegmentTermEnum indexEnum = new SegmentTermEnum(directory.openInput(indexFileName,
+ final SegmentTermEnum indexEnum = newSegmentTermEnum(directory.openInput(indexFileName,
context), fieldInfos, true);
try {
@@ -148,6 +149,11 @@ final class TermInfosReader implements C
}
}
}
+
+ // only overridden for testing
+ protected SegmentTermEnum newSegmentTermEnum(IndexInput input, FieldInfos fieldInfos, boolean isIndex) throws IOException {
+ return new SegmentTermEnum(input, fieldInfos, isIndex);
+ }
public int getSkipInterval() {
return origEnum.skipInterval;
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/BufferedIndexOutput.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/BufferedIndexOutput.java?rev=1599477&r1=1599476&r2=1599477&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/BufferedIndexOutput.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/BufferedIndexOutput.java Tue Jun 3 11:20:31 2014
@@ -136,12 +136,6 @@ public abstract class BufferedIndexOutpu
}
@Override
- public void seek(long pos) throws IOException {
- flush();
- bufferStart = pos;
- }
-
- @Override
public abstract long length() throws IOException;
/**
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/CompoundFileWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/CompoundFileWriter.java?rev=1599477&r1=1599476&r2=1599477&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/CompoundFileWriter.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/CompoundFileWriter.java Tue Jun 3 11:20:31 2014
@@ -342,12 +342,6 @@ final class CompoundFileWriter implement
}
@Override
- public void seek(long pos) throws IOException {
- assert !closed;
- delegate.seek(offset + pos);
- }
-
- @Override
public long length() throws IOException {
assert !closed;
return delegate.length() - offset;
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/FSDirectory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/FSDirectory.java?rev=1599477&r1=1599476&r2=1599477&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/FSDirectory.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/FSDirectory.java Tue Jun 3 11:20:31 2014
@@ -427,13 +427,6 @@ public abstract class FSDirectory extend
}
}
- /** Random-access methods */
- @Override
- public void seek(long pos) throws IOException {
- super.seek(pos);
- file.seek(pos);
- }
-
@Override
public long length() throws IOException {
return file.length();
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/IndexOutput.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/IndexOutput.java?rev=1599477&r1=1599476&r2=1599477&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/IndexOutput.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/IndexOutput.java Tue Jun 3 11:20:31 2014
@@ -43,17 +43,9 @@ public abstract class IndexOutput extend
/** Returns the current position in this file, where the next write will
* occur.
- * @see #seek(long)
*/
public abstract long getFilePointer();
- /** Sets current position in this file, where the next write will occur.
- * @see #getFilePointer()
- * @deprecated (4.1) This method will be removed in Lucene 5.0
- */
- @Deprecated
- public abstract void seek(long pos) throws IOException;
-
/** Returns the current checksum of bytes written so far */
public abstract long getChecksum() throws IOException;
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/RAMOutputStream.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/RAMOutputStream.java?rev=1599477&r1=1599476&r2=1599477&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/RAMOutputStream.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/RAMOutputStream.java Tue Jun 3 11:20:31 2014
@@ -117,19 +117,6 @@ public class RAMOutputStream extends Ind
}
@Override
- public void seek(long pos) throws IOException {
- // set the file length in case we seek back
- // and flush() has not been called yet
- setFileLength();
- if (pos < bufferStart || pos >= bufferStart + bufferLength) {
- currentBufferIndex = (int) (pos / BUFFER_SIZE);
- switchCurrentBuffer();
- }
-
- bufferPosition = (int) (pos % BUFFER_SIZE);
- }
-
- @Override
public long length() {
return file.length;
}
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/RateLimitedIndexOutput.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/RateLimitedIndexOutput.java?rev=1599477&r1=1599476&r2=1599477&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/RateLimitedIndexOutput.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/store/RateLimitedIndexOutput.java Tue Jun 3 11:20:31 2014
@@ -64,13 +64,6 @@ final class RateLimitedIndexOutput exten
}
@Override
- public void seek(long pos) throws IOException {
- flush();
- delegate.seek(pos);
- }
-
-
- @Override
public void flush() throws IOException {
try {
super.flush();
Modified: lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/codecs/lucene3x/TestTermInfosReaderIndex.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/codecs/lucene3x/TestTermInfosReaderIndex.java?rev=1599477&r1=1599476&r2=1599477&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/codecs/lucene3x/TestTermInfosReaderIndex.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/codecs/lucene3x/TestTermInfosReaderIndex.java Tue Jun 3 11:20:31 2014
@@ -102,10 +102,10 @@ public class TestTermInfosReaderIndex ex
String segmentFileName = IndexFileNames.segmentFileName(segment, "", Lucene3xPostingsFormat.TERMS_INDEX_EXTENSION);
long tiiFileLength = directory.fileLength(segmentFileName);
IndexInput input = directory.openInput(segmentFileName, newIOContext(random()));
- termEnum = new SegmentTermEnum(directory.openInput(IndexFileNames.segmentFileName(segment, "", Lucene3xPostingsFormat.TERMS_EXTENSION), newIOContext(random())), fieldInfos, false);
+ termEnum = new PreflexRWSegmentTermEnum(directory.openInput(IndexFileNames.segmentFileName(segment, "", Lucene3xPostingsFormat.TERMS_EXTENSION), newIOContext(random())), fieldInfos, false);
int totalIndexInterval = termEnum.indexInterval * indexDivisor;
- SegmentTermEnum indexEnum = new SegmentTermEnum(input, fieldInfos, true);
+ SegmentTermEnum indexEnum = new PreflexRWSegmentTermEnum(input, fieldInfos, true);
index = new TermInfosReaderIndex(indexEnum, indexDivisor, tiiFileLength, totalIndexInterval);
indexEnum.close();
input.close();
Modified: lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/SlowRAMDirectory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/SlowRAMDirectory.java?rev=1599477&r1=1599476&r2=1599477&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/SlowRAMDirectory.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/SlowRAMDirectory.java Tue Jun 3 11:20:31 2014
@@ -167,7 +167,6 @@ public class SlowRAMDirectory extends RA
io.writeBytes(b, offset, length);
}
- @Deprecated @Override public void seek(long pos) throws IOException { io.seek(pos); }
@Override public void close() throws IOException { io.close(); }
@Override public void flush() throws IOException { io.flush(); }
@Override public long getFilePointer() { return io.getFilePointer(); }
Modified: lucene/dev/branches/branch_4x/lucene/misc/src/java/org/apache/lucene/store/NativeUnixDirectory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/misc/src/java/org/apache/lucene/store/NativeUnixDirectory.java?rev=1599477&r1=1599476&r2=1599477&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/misc/src/java/org/apache/lucene/store/NativeUnixDirectory.java (original)
+++ lucene/dev/branches/branch_4x/lucene/misc/src/java/org/apache/lucene/store/NativeUnixDirectory.java Tue Jun 3 11:20:31 2014
@@ -236,26 +236,6 @@ public class NativeUnixDirectory extends
return filePos + bufferPos;
}
- // TODO: seek is fragile at best; it can only properly
- // handle seek & then change bytes that fit entirely
- // within one buffer
- @Override
- public void seek(long pos) throws IOException {
- if (pos != getFilePointer()) {
- dump();
- final long alignedPos = pos & ALIGN_NOT_MASK;
- filePos = alignedPos;
- int n = (int) NativePosixUtil.pread(fos.getFD(), filePos, buffer);
- if (n < bufferSize) {
- buffer.limit(n);
- }
- //System.out.println("seek refill=" + n);
- final int delta = (int) (pos - alignedPos);
- buffer.position(delta);
- bufferPos = delta;
- }
- }
-
@Override
public long length() {
return fileLength + bufferPos;
Modified: lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreFlexRWPostingsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreFlexRWPostingsFormat.java?rev=1599477&r1=1599476&r2=1599477&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreFlexRWPostingsFormat.java (original)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreFlexRWPostingsFormat.java Tue Jun 3 11:20:31 2014
@@ -21,8 +21,12 @@ import java.io.IOException;
import org.apache.lucene.codecs.FieldsConsumer;
import org.apache.lucene.codecs.FieldsProducer;
+import org.apache.lucene.index.FieldInfos;
import org.apache.lucene.index.SegmentWriteState;
import org.apache.lucene.index.SegmentReadState;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.IOContext;
+import org.apache.lucene.store.IndexInput;
import org.apache.lucene.util.LuceneTestCase;
/** Codec, only for testing, that can write and read the
@@ -69,6 +73,17 @@ class PreFlexRWPostingsFormat extends Lu
return unicodeSortOrder;
}
+
+ // we don't seek-on-write when testing
+ @Override
+ protected TermInfosReader newTermInfosReader(Directory dir, String name, FieldInfos fieldInfos, IOContext context, int indexDivisor) throws IOException {
+ return new TermInfosReader(dir, name, fieldInfos, context, indexDivisor) {
+ @Override
+ protected SegmentTermEnum newSegmentTermEnum(IndexInput input, FieldInfos fieldInfos, boolean isIndex) throws IOException {
+ return new PreflexRWSegmentTermEnum(input, fieldInfos, isIndex);
+ }
+ };
+ }
};
}
}
Added: lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreflexRWSegmentTermEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreflexRWSegmentTermEnum.java?rev=1599477&view=auto
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreflexRWSegmentTermEnum.java (added)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreflexRWSegmentTermEnum.java Tue Jun 3 11:20:31 2014
@@ -0,0 +1,40 @@
+package org.apache.lucene.codecs.lucene3x;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.IOException;
+
+import org.apache.lucene.index.CorruptIndexException;
+import org.apache.lucene.index.FieldInfos;
+import org.apache.lucene.store.IndexInput;
+
+// not an anonymous class so TestTermInfosReaderIndex can instantiate directly
+class PreflexRWSegmentTermEnum extends SegmentTermEnum {
+ PreflexRWSegmentTermEnum(IndexInput i, FieldInfos fis, boolean isi) throws IOException {
+ super(i, fis, isi);
+ }
+
+ @Override
+ protected long readSize(IndexInput input) throws IOException {
+ long savedPosition = input.getFilePointer();
+ input.seek(input.length() - 8);
+ long size = input.readLong();
+ input.seek(savedPosition + 8); // we still left the 'hole'
+ return size;
+ }
+}
Modified: lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/TermInfosWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/TermInfosWriter.java?rev=1599477&r1=1599476&r2=1599477&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/TermInfosWriter.java (original)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/TermInfosWriter.java Tue Jun 3 11:20:31 2014
@@ -270,7 +270,8 @@ final class TermInfosWriter implements C
/** Called to complete TermInfos creation. */
public void close() throws IOException {
try {
- output.seek(4); // write size after format
+ // the "real" 3.x seeked back to offset 4, and wrote 8 bytes there.
+ // we write 8 bytes at the end of the file
output.writeLong(size);
} finally {
try {
Modified: lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java?rev=1599477&r1=1599476&r2=1599477&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java (original)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java Tue Jun 3 11:20:31 2014
@@ -973,12 +973,6 @@ public class MockDirectoryWrapper extend
}
@Override
- public void seek(long pos) throws IOException {
- flush();
- io.seek(pos);
- }
-
- @Override
public void flush() throws IOException {
try {
super.flush();
Modified: lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/store/MockIndexOutputWrapper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/store/MockIndexOutputWrapper.java?rev=1599477&r1=1599476&r2=1599477&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/store/MockIndexOutputWrapper.java (original)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/store/MockIndexOutputWrapper.java Tue Jun 3 11:20:31 2014
@@ -147,11 +147,6 @@ public class MockIndexOutputWrapper exte
}
@Override
- public void seek(long pos) throws IOException {
- delegate.seek(pos);
- }
-
- @Override
public long length() throws IOException {
return delegate.length();
}
Modified: lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/ThrottledIndexOutput.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/ThrottledIndexOutput.java?rev=1599477&r1=1599476&r2=1599477&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/ThrottledIndexOutput.java (original)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/ThrottledIndexOutput.java Tue Jun 3 11:20:31 2014
@@ -89,12 +89,6 @@ public class ThrottledIndexOutput extend
}
@Override
- public void seek(long pos) throws IOException {
- sleep(seekDelayMillis);
- delegate.seek(pos);
- }
-
- @Override
public long length() throws IOException {
return delegate.length();
}
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/store/blockcache/ReusedBufferedIndexOutput.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/store/blockcache/ReusedBufferedIndexOutput.java?rev=1599477&r1=1599476&r2=1599477&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/store/blockcache/ReusedBufferedIndexOutput.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/store/blockcache/ReusedBufferedIndexOutput.java Tue Jun 3 11:20:31 2014
@@ -98,23 +98,6 @@ public abstract class ReusedBufferedInde
protected abstract void seekInternal(long pos) throws IOException;
@Override
- public void seek(long pos) throws IOException {
- if (pos > fileLength) {
- fileLength = pos;
- }
-
- if (pos >= bufferStart && pos < (bufferStart + bufferLength))
- bufferPosition = (int)(pos - bufferStart); // seek within buffer
- else {
- flushBufferToCache();
- bufferStart = pos;
- bufferPosition = 0;
- bufferLength = 0;
- seekInternal(pos);
- }
- }
-
- @Override
public long length() throws IOException {
return fileLength;
}
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/store/hdfs/NullIndexOutput.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/store/hdfs/NullIndexOutput.java?rev=1599477&r1=1599476&r2=1599477&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/store/hdfs/NullIndexOutput.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/store/hdfs/NullIndexOutput.java Tue Jun 3 11:20:31 2014
@@ -49,12 +49,6 @@ public class NullIndexOutput extends Ind
return length;
}
-
- @Override
- public void seek(long pos) throws IOException {
- this.pos = pos;
- }
-
@Override
public void writeByte(byte b) throws IOException {
pos++;