--- src/java/org/apache/lucene/index/DocInverterPerField.java Wed Oct 01 11:58:36 2008 +++ src/java/org/apache/lucene/index/DocInverterPerField.java Wed Dec 31 02:41:28 2008 @@ -94,6 +94,7 @@ } else { // tokenized field final TokenStream stream; final TokenStream streamValue = field.tokenStreamValue(); + int valueLength = -1; if (streamValue != null) stream = streamValue; @@ -109,6 +110,7 @@ String stringValue = field.stringValue(); if (stringValue == null) throw new IllegalArgumentException("field must have either TokenStream, String or Reader value"); + valueLength = stringValue.length(); perThread.stringReader.init(stringValue); reader = perThread.stringReader; } @@ -121,7 +123,7 @@ stream.reset(); try { - int offsetEnd = fieldState.offset-1; + int offsetEnd = fieldState.offset; final Token localToken = perThread.localToken; for(;;) { @@ -157,7 +159,10 @@ break; } } - fieldState.offset = offsetEnd+1; + if(valueLength >= 0) + fieldState.offset += valueLength; + else + fieldState.offset = offsetEnd; } finally { stream.close(); }