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