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/01/28 19:22:50 UTC
svn commit: r1237127 - in
/lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene:
codecs/simpletext/SimpleTextLiveDocsFormat.java index/IndexWriter.java
Author: rmuir
Date: Sat Jan 28 18:22:49 2012
New Revision: 1237127
URL: http://svn.apache.org/viewvc?rev=1237127&view=rev
Log:
LUCENE-3661: nuke nocommit for real, split SimpleText to use read-only bits impls whenever it can
Modified:
lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/codecs/simpletext/SimpleTextLiveDocsFormat.java
lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/IndexWriter.java
Modified: lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/codecs/simpletext/SimpleTextLiveDocsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/codecs/simpletext/SimpleTextLiveDocsFormat.java?rev=1237127&r1=1237126&r2=1237127&view=diff
==============================================================================
--- lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/codecs/simpletext/SimpleTextLiveDocsFormat.java (original)
+++ lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/codecs/simpletext/SimpleTextLiveDocsFormat.java Sat Jan 28 18:22:49 2012
@@ -53,13 +53,13 @@ public class SimpleTextLiveDocsFormat ex
@Override
public MutableBits newLiveDocs(int size) throws IOException {
- return new SimpleTextBits(size);
+ return new SimpleTextMutableBits(size);
}
@Override
public MutableBits newLiveDocs(Bits existing) throws IOException {
final SimpleTextBits bits = (SimpleTextBits) existing;
- return bits.clone();
+ return new SimpleTextMutableBits((BitSet)bits.bits.clone(), bits.size);
}
@Override
@@ -144,16 +144,11 @@ public class SimpleTextLiveDocsFormat ex
}
}
- static class SimpleTextBits implements MutableBits {
+ // read-only
+ static class SimpleTextBits implements Bits {
final BitSet bits;
final int size;
- SimpleTextBits(int size) {
- this.size = size;
- bits = new BitSet(size);
- bits.set(0, size);
- }
-
SimpleTextBits(BitSet bits, int size) {
this.bits = bits;
this.size = size;
@@ -168,16 +163,23 @@ public class SimpleTextLiveDocsFormat ex
public int length() {
return size;
}
+ }
+
+ // read-write
+ static class SimpleTextMutableBits extends SimpleTextBits implements MutableBits {
+ SimpleTextMutableBits(int size) {
+ this(new BitSet(size), size);
+ bits.set(0, size);
+ }
+
+ SimpleTextMutableBits(BitSet bits, int size) {
+ super(bits, size);
+ }
+
@Override
public void clear(int bit) {
bits.clear(bit);
}
-
- @Override
- public SimpleTextBits clone() {
- BitSet clonedBits = (BitSet) bits.clone();
- return new SimpleTextBits(clonedBits, size);
- }
}
}
Modified: lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/IndexWriter.java?rev=1237127&r1=1237126&r2=1237127&view=diff
==============================================================================
--- lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/IndexWriter.java Sat Jan 28 18:22:49 2012
@@ -417,7 +417,7 @@ public class IndexWriter implements Clos
// docs, and it's copy-on-write (cloned whenever we need
// to change it but it's been shared to an external NRT
// reader).
- public MutableBits liveDocs;
+ public Bits liveDocs;
// How many further deletions we've done against
// liveDocs vs when we loaded it or last wrote it:
@@ -494,8 +494,7 @@ public class IndexWriter implements Clos
if (reader == null) {
reader = new SegmentReader(info, config.getReaderTermsIndexDivisor(), context);
if (liveDocs == null) {
- // nocommit: still don't like this cast, gotta be a cleaner way.
- liveDocs = (MutableBits) reader.getLiveDocs();
+ liveDocs = reader.getLiveDocs();
}
//System.out.println("ADD seg=" + rld.info + " isMerge=" + isMerge + " " + readerMap.size() + " in pool");
}
@@ -522,7 +521,7 @@ public class IndexWriter implements Clos
} else {
mergeReader = new SegmentReader(info, -1, context);
if (liveDocs == null) {
- liveDocs = (MutableBits) mergeReader.getLiveDocs();
+ liveDocs = mergeReader.getLiveDocs();
}
}
}
@@ -538,7 +537,7 @@ public class IndexWriter implements Clos
assert !shared;
final boolean didDelete = liveDocs.get(docID);
if (didDelete) {
- liveDocs.clear(docID);
+ ((MutableBits) liveDocs).clear(docID);
pendingDeleteCount++;
//System.out.println(" new del seg=" + info + " docID=" + docID + " pendingDelCount=" + pendingDeleteCount + " totDelCount=" + (info.docCount-liveDocs.count()));
}
@@ -627,7 +626,7 @@ public class IndexWriter implements Clos
// until segments file is written:
boolean success = false;
try {
- info.getCodec().liveDocsFormat().writeLiveDocs(liveDocs, dir, info, IOContext.DEFAULT);
+ info.getCodec().liveDocsFormat().writeLiveDocs((MutableBits)liveDocs, dir, info, IOContext.DEFAULT);
success = true;
} finally {
if (!success) {