[ 
https://issues.apache.org/jira/browse/LUCENE-8174?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16365406#comment-16365406
 ] 

Oliver Kaleske commented on LUCENE-8174:
----------------------------------------

I was just about to submit it, but then my colleagues wanted to go for lunch. ;)

There was actually a second bug: the ranges ("[x : y]") were never appended to 
the StringBuilder. ... But how would you notice if the entire thing throws?

There's quite a bit of duplication between the four classes, by the way.

> ArrayIndexOutOfBoundsException in IntRange.toString and its siblings
> --------------------------------------------------------------------
>
>                 Key: LUCENE-8174
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8174
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: core/index
>    Affects Versions: 7.2
>            Reporter: Oliver Kaleske
>            Priority: Major
>         Attachments: LUCENE-8174.patch
>
>
> The following code produces an ArrayIndexOutOfBoundsException:
> {{        IntRange intRange = new IntRange("foo", new int[] \{ 1 }, new int[] 
> \{ 2 });}}
>  {{        System.out.println(intRange.toString());}}
> The exception is thrown in NumericUtils.sortableBytesToInt, which is fed an 
> incorrect offset.
> The bug appears to be in IntRange.toString. I guess the for loop should read
> {{for (int d=0; d<type.pointDimensionCount()/2; ++d)}}
> instead of
> {{for (int d=1; d<type.pointDimensionCount(); ++d)}}
> because the number of dimensions is half the number of "point dimensions" 
> (cf. the checks on the dimension parameter in getMin() and getMax()).
> The same bug is found in the DoubleRange, FloatRange, and LongRange classes.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to