[jira] [Updated] (GEODE-9429) Radish HSCAN implementation cannot handle values for COUNT greater than Integer.MAX_VALUE / 2

2022-02-08 Thread Anthony Baker (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-9429?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Anthony Baker updated GEODE-9429:
-
Labels: pull-request-available unreleased  (was: pull-request-available)

> Radish HSCAN implementation cannot handle values for COUNT greater than 
> Integer.MAX_VALUE / 2
> -
>
> Key: GEODE-9429
> URL: https://issues.apache.org/jira/browse/GEODE-9429
> Project: Geode
>  Issue Type: Bug
>  Components: redis
>Affects Versions: 1.15.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available, unreleased
> Fix For: 1.15.0
>
>
> The below code is the current implementation of HSCAN in {{RedisHash}}. When 
> the value of {{count}} passed to this method is greater than 
> {{Integer.MAX_VALUE / 2}} the condition of the while loop suffers from 
> integer overflow and the loop does not execute correctly.
> {code:java}
>   public ImmutablePair> hscan(Pattern matchPattern, int 
> count, int cursor) {
> ArrayList resultList = new ArrayList<>(count + 2);
> do {
>   cursor = hash.scan(cursor, 1,
>   (list, key, value) -> addIfMatching(matchPattern, list, key, 
> value), resultList);
> } while (cursor != 0 && resultList.size() < (count * 2));
> return new ImmutablePair<>(cursor, resultList);
> {code}
> This could be fixed by changing the type of {{resultList}} to 
> {{List>}} and modifying the {{addIfMatching()}} 
> method to populate the list with {{ImmutablePair}}s of keys and values rather 
> than a single continuous list of interleaved keys and values.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (GEODE-9429) Radish HSCAN implementation cannot handle values for COUNT greater than Integer.MAX_VALUE / 2

2021-07-15 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-9429?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated GEODE-9429:
--
Labels: pull-request-available  (was: )

> Radish HSCAN implementation cannot handle values for COUNT greater than 
> Integer.MAX_VALUE / 2
> -
>
> Key: GEODE-9429
> URL: https://issues.apache.org/jira/browse/GEODE-9429
> Project: Geode
>  Issue Type: Bug
>  Components: redis
>Affects Versions: 1.15.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available
>
> The below code is the current implementation of HSCAN in {{RedisHash}}. When 
> the value of {{count}} passed to this method is greater than 
> {{Integer.MAX_VALUE / 2}} the condition of the while loop suffers from 
> integer overflow and the loop does not execute correctly.
> {code:java}
>   public ImmutablePair> hscan(Pattern matchPattern, int 
> count, int cursor) {
> ArrayList resultList = new ArrayList<>(count + 2);
> do {
>   cursor = hash.scan(cursor, 1,
>   (list, key, value) -> addIfMatching(matchPattern, list, key, 
> value), resultList);
> } while (cursor != 0 && resultList.size() < (count * 2));
> return new ImmutablePair<>(cursor, resultList);
> {code}
> This could be fixed by changing the type of {{resultList}} to 
> {{List>}} and modifying the {{addIfMatching()}} 
> method to populate the list with {{ImmutablePair}}s of keys and values rather 
> than a single continuous list of interleaved keys and values.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)