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 2013/01/29 02:18:14 UTC
svn commit: r1439727 - in
/lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index:
FieldInfo.java FieldInfos.java IndexWriter.java
Author: mikemccand
Date: Tue Jan 29 01:18:13 2013
New Revision: 1439727
URL: http://svn.apache.org/viewvc?rev=1439727&view=rev
Log:
move normDVType checking into FieldInfo; add nocommits
Modified:
lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/FieldInfo.java
lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/FieldInfos.java
lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
Modified: lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/FieldInfo.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/FieldInfo.java?rev=1439727&r1=1439726&r2=1439727&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/FieldInfo.java (original)
+++ lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/FieldInfo.java Tue Jan 29 01:18:13 2013
@@ -232,6 +232,9 @@ public final class FieldInfo {
// nocommit type is always number? should we remove this?
void setNormValueType(DocValuesType type) {
+ if (normType != null && normType != type) {
+ throw new IllegalArgumentException("cannot change Norm type from " + normType + " to " + type + " for field \"" + name + "\"");
+ }
normType = type;
assert checkConsistency();
}
Modified: lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/FieldInfos.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/FieldInfos.java?rev=1439727&r1=1439726&r2=1439727&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/FieldInfos.java (original)
+++ lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/FieldInfos.java Tue Jan 29 01:18:13 2013
@@ -213,15 +213,17 @@ public class FieldInfos implements Itera
* Sets the given field number and name if not yet set.
*/
// nocommit: why is docvalues involved with global field numbers?
+ // nocommit: and is it even tested...
synchronized void setIfNotSet(int fieldNumber, String fieldName, DocValuesType dvType) {
final Integer boxedFieldNumber = Integer.valueOf(fieldNumber);
if (!numberToName.containsKey(boxedFieldNumber)
&& !nameToNumber.containsKey(fieldName)
- && !docValuesType.containsKey(fieldName)) {
+ && !docValuesType.containsKey(dvType)) {
numberToName.put(boxedFieldNumber, fieldName);
nameToNumber.put(fieldName, boxedFieldNumber);
docValuesType.put(fieldName, dvType);
} else {
+ // nocommit should this be a real check?
assert containsConsistent(boxedFieldNumber, fieldName, dvType);
}
}
@@ -319,22 +321,10 @@ public class FieldInfos implements Itera
fi.update(isIndexed, storeTermVector, omitNorms, storePayloads, indexOptions);
if (docValues != null) {
- DocValuesType currentDVType = fi.getDocValuesType();
- if (currentDVType == null) {
- fi.setDocValuesType(docValues);
- } else if (currentDVType != docValues) {
- throw new IllegalArgumentException("cannot change DocValues type from " + currentDVType + " to " + docValues + " for field \"" + name + "\"");
- }
fi.setDocValuesType(docValues);
}
if (!fi.omitsNorms() && normType != null) {
- DocValuesType currentDVType = fi.getNormType();
- if (currentDVType == null) {
- fi.setNormValueType(docValues);
- } else if (currentDVType != normType) {
- throw new IllegalArgumentException("cannot change Norm type from " + currentDVType + " to " + normType + " for field \"" + name + "\"");
- }
fi.setNormValueType(normType);
}
}
Modified: lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java?rev=1439727&r1=1439726&r2=1439727&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java Tue Jan 29 01:18:13 2013
@@ -763,6 +763,8 @@ public class IndexWriter implements Clos
private FieldNumbers getFieldNumberMap() throws IOException {
final FieldNumbers map = new FieldNumbers();
+ // nocommit for a 4.0 index that has inconsistent DV
+ // types ... this will throw exc on init of IW?
for(SegmentInfoPerCommit info : segmentInfos) {
for(FieldInfo fi : getFieldInfos(info.info)) {
map.addOrGet(fi.name, fi.number, fi.getDocValuesType());