[ https://issues.apache.org/jira/browse/LUCENE-1217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12577601#action_12577601 ]
Eks Dev commented on LUCENE-1217: --------------------------------- hah, this bug just justified this patch :) sorry, I should have run tests before... nothing is trivial enough. The problem was indeed isBinary that went out of sync in LazyField, new patch follows > use isBinary cached variable instead of instanceof in Filed > ----------------------------------------------------------- > > Key: LUCENE-1217 > URL: https://issues.apache.org/jira/browse/LUCENE-1217 > Project: Lucene - Java > Issue Type: Improvement > Components: Other > Reporter: Eks Dev > Assignee: Michael McCandless > Priority: Trivial > Attachments: LUCENE-1217.patch > > > Filed class can hold three types of values, > See: AbstractField.java protected Object fieldsData = null; > currently, mainly RTTI (instanceof) is used to determine the type of the > value stored in particular instance of the Field, but for binary value we > have mixed RTTI and cached variable "boolean isBinary" > This patch makes consistent use of cached variable isBinary. > Benefit: consistent usage of method to determine run-time type for binary > case (reduces chance to get out of sync on cached variable). It should be > slightly faster as well. > Thinking aloud: > Would it not make sense to maintain type with some integer/byte"poor man's > enum" (Interface with a couple of constants) > code:java{ > public static final interface Type{ > public static final byte BOOLEAN = 0; > public static final byte STRING = 1; > public static final byte READER = 2; > .... > } > } > and use that instead of isBinary + instanceof? -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]