[ 
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]

Reply via email to