[ http://issues.apache.org/jira/browse/LUCENE-480?page=all ]
Yonik Seeley closed LUCENE-480:
-------------------------------
Resolution: Invalid
Assign To: Yonik Seeley
No problem... glad to hear it will be an easy fix :-)
> NullPointerException during IndexWriter.mergeSegments
> -----------------------------------------------------
>
> Key: LUCENE-480
> URL: http://issues.apache.org/jira/browse/LUCENE-480
> Project: Lucene - Java
> Type: Bug
> Components: Index
> Versions: CVS Nightly - Specify date in submission, 1.9
> Environment: 64bit, ubuntu, Java 5 SE
> Reporter: Jeremy Calvert
> Assignee: Yonik Seeley
>
> Last commit on culprit org.apache.lucene.index.FieldsReader: Sun Oct 30
> 05:38:46 2005.
> ---------------------------------------------------------
> Offending code in FieldsReader.java:
> ...
> final Document doc(int n) throws IOException {
> indexStream.seek(n * 8L);
> long position = indexStream.readLong();
> fieldsStream.seek(position);
> Document doc = new Document();
> int numFields = fieldsStream.readVInt();
> for (int i = 0; i < numFields; i++) {
> int fieldNumber = fieldsStream.readVInt();
> FieldInfo fi = fieldInfos.fieldInfo(fieldNumber);
> //
> // This apparently returns null, presumably either as a result of:
> // catch (IndexOutOfBoundsException ioobe) {
> // return null;
> // }
> // in fieldInfos.fieldInfo(int fieldNumber)
> // - or -
> // because there's a null member of member ArrayList byNumber of FieldInfos
> byte bits = fieldsStream.readByte();
>
> boolean compressed = (bits & FieldsWriter.FIELD_IS_COMPRESSED) != 0;
> ....
> Field.Store store = Field.Store.YES;
> //
> // Here --v is where the NPE is thrown.
> if (fi.isIndexed && tokenize)
> index = Field.Index.TOKENIZED;
> ...
> ---------------------------------------------------------
> Proposed Patch:
> I'm not sure what the behavior should be in this case, but if it's no big
> deal that there's null field info for an index and we should just ignore that
> index, an obvious patch could be:
> In FieldsReader.java:
> ...
> for (int i = 0; i < numFields; i++) {
> int fieldNumber = fieldsStream.readVInt();
> FieldInfo fi = fieldInfos.fieldInfo(fieldNumber);
> // vvvPatchvvv
> if(fi == null) {continue;}
> byte bits = fieldsStream.readByte();
> ...
> ---------------------------------------------------------
> Other observations:
> In my search prior to submitting this issue, I found LUCENE-168, which looks
> similar, and is perhaps related, but if so, I'm not sure exactly how.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]