LUCENE-3606: Remove nocommits

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene3606@1211708 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Uwe Schindler 2011-12-07 23:42:23 +00:00
parent ba1306c296
commit 96576daf53
2 changed files with 18 additions and 17 deletions

View File

@ -51,13 +51,13 @@ public final class SegmentReader extends IndexReader implements Cloneable {
boolean hasChanges = false;
private boolean liveDocsDirty = false;
// nocommit: move the whole modification stuff to IW
// TODO: remove deletions from SR
private int pendingDeleteCount;
private boolean rollbackHasChanges = false;
private boolean rollbackDeletedDocsDirty = false;
private SegmentInfo rollbackSegmentInfo;
private int rollbackPendingDeleteCount;
// end nocommit
// end TODO
SegmentCoreReaders core;
@ -79,7 +79,7 @@ public final class SegmentReader extends IndexReader implements Cloneable {
return get(true, si, true, termInfosIndexDivisor, context);
}
// nocommit: remove deletions from SR
// TODO: remove deletions from SR
static SegmentReader getRW(SegmentInfo si, boolean doOpenStores, int termInfosIndexDivisor, IOContext context) throws CorruptIndexException, IOException {
return get(false, si, doOpenStores, termInfosIndexDivisor, context);
}
@ -167,7 +167,7 @@ public final class SegmentReader extends IndexReader implements Cloneable {
* @param bv BitVector to clone
* @return New BitVector
*/
// nocommit: remove deletions from SR
// TODO: remove deletions from SR
BitVector cloneDeletedDocs(BitVector bv) {
ensureOpen();
return (BitVector)bv.clone();
@ -182,7 +182,7 @@ public final class SegmentReader extends IndexReader implements Cloneable {
}
}
// nocommit: is this needed anymore by IndexWriter?
// TODO: is this needed anymore by IndexWriter?
final synchronized IndexReader clone(boolean openReadOnly) throws CorruptIndexException, IOException {
return reopenSegment(si, true, openReadOnly);
}
@ -253,7 +253,7 @@ public final class SegmentReader extends IndexReader implements Cloneable {
return clone;
}
// nocommit: remove deletions from SR
// TODO: remove deletions from SR
void doCommit() throws IOException {
assert hasChanges;
startCommit();
@ -268,7 +268,7 @@ public final class SegmentReader extends IndexReader implements Cloneable {
}
}
// nocommit: remove deletions from SR
// TODO: remove deletions from SR
private void startCommit() {
rollbackSegmentInfo = (SegmentInfo) si.clone();
rollbackHasChanges = hasChanges;
@ -276,7 +276,7 @@ public final class SegmentReader extends IndexReader implements Cloneable {
rollbackPendingDeleteCount = pendingDeleteCount;
}
// nocommit: remove deletions from SR
// TODO: remove deletions from SR
private void rollbackCommit() {
si.reset(rollbackSegmentInfo);
hasChanges = rollbackHasChanges;
@ -284,7 +284,7 @@ public final class SegmentReader extends IndexReader implements Cloneable {
pendingDeleteCount = rollbackPendingDeleteCount;
}
// nocommit: remove deletions from SR
// TODO: remove deletions from SR
private synchronized void commitChanges() throws IOException {
if (liveDocsDirty) { // re-write deleted
si.advanceDelGen();
@ -351,14 +351,14 @@ public final class SegmentReader extends IndexReader implements Cloneable {
return liveDocs != null;
}
// nocommit: remove deletions from SR
// TODO: remove deletions from SR
synchronized void deleteDocument(int docNum) throws IOException {
ensureOpen();
hasChanges = true;
doDelete(docNum);
}
// nocommit: remove deletions from SR
// TODO: remove deletions from SR
void doDelete(int docNum) {
if (liveDocs == null) {
liveDocs = new BitVector(maxDoc());

View File

@ -33,6 +33,7 @@ import org.apache.lucene.store.Directory;
import org.apache.lucene.store.IOContext;
import org.apache.lucene.store.IndexInput;
import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.MapBackedSet;
import org.apache.lucene.util.StringHelper;
public class Lucene40NormsReader extends NormsReader {
@ -41,7 +42,7 @@ public class Lucene40NormsReader extends NormsReader {
Map<String,Norm> norms = new HashMap<String,Norm>();
// any .nrm or .sNN files we have open at any time.
// TODO: just a list, and double-close() separate norms files?
Map<IndexInput,Boolean> openFiles = new IdentityHashMap<IndexInput,Boolean>();
Set<IndexInput> openFiles = new MapBackedSet<IndexInput>(new IdentityHashMap<IndexInput,Boolean>());
// points to a singleNormFile
IndexInput singleNormStream;
final int maxdoc;
@ -69,7 +70,7 @@ public class Lucene40NormsReader extends NormsReader {
normSeek = nextNormSeek;
if (singleNormStream == null) {
singleNormStream = d.openInput(fileName, context);
openFiles.put(singleNormStream, Boolean.TRUE);
openFiles.add(singleNormStream);
}
// All norms in the .nrm file can share a single IndexInput since
// they are only used in a synchronized context.
@ -77,7 +78,7 @@ public class Lucene40NormsReader extends NormsReader {
normInput = singleNormStream;
} else {
normInput = d.openInput(fileName, context);
openFiles.put(normInput, Boolean.TRUE);
openFiles.add(normInput);
// if the segment was created in 3.2 or after, we wrote the header for sure,
// and don't need to do the sketchy file size check. otherwise, we check
// if the size is exactly equal to maxDoc to detect a headerless file.
@ -100,13 +101,13 @@ public class Lucene40NormsReader extends NormsReader {
nextNormSeek += maxdoc; // increment also if some norms are separate
}
}
// nocommit: change to a real check? see LUCENE-3619
// TODO: change to a real check? see LUCENE-3619
assert singleNormStream == null || nextNormSeek == singleNormStream.length();
success = true;
} finally {
if (!success) {
if (openFiles != null) {
IOUtils.closeWhileHandlingException(openFiles.keySet());
IOUtils.closeWhileHandlingException(openFiles);
}
}
}
@ -123,7 +124,7 @@ public class Lucene40NormsReader extends NormsReader {
public void close() throws IOException {
try {
if (openFiles != null) {
IOUtils.close(openFiles.keySet());
IOUtils.close(openFiles);
}
} finally {
norms = null;