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());