fix: Fix npe in pagination (#23880)
This commit is contained in:
parent
4d474617de
commit
44bd60f7e3
@ -53,6 +53,7 @@ Every module contains its own CHANGELOG.md. Please refer to the module you are i
|
||||
### Bug Fixes
|
||||
|
||||
* (x/auth) [#23741](https://github.com/cosmos/cosmos-sdk/pull/23741) Support legacy global AccountNumber.
|
||||
* (types/query) [#23880](https://github.com/cosmos/cosmos-sdk/pull/23880) Fix NPE in query pagination.
|
||||
|
||||
### Removed
|
||||
|
||||
|
||||
@ -112,7 +112,7 @@ func CollectionFilteredPaginate[K, V any, C Collection[K, V], T any](
|
||||
return results, new(PageResponse), nil
|
||||
}
|
||||
// strip the prefix from next key
|
||||
if len(pageRes.NextKey) != 0 && prefix != nil {
|
||||
if pageRes != nil && len(pageRes.NextKey) != 0 && prefix != nil {
|
||||
pageRes.NextKey = pageRes.NextKey[len(prefix):]
|
||||
}
|
||||
return results, pageRes, err
|
||||
|
||||
@ -2,6 +2,7 @@ package query
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
@ -15,6 +16,7 @@ func TestCollectionPagination(t *testing.T) {
|
||||
sk, ctx := deps()
|
||||
sb := collections.NewSchemaBuilder(sk)
|
||||
m := collections.NewMap(sb, collections.NewPrefix(0), "_", collections.Uint64Key, collections.Uint64Value)
|
||||
dummyErr := errors.New("dummy error")
|
||||
|
||||
for i := uint64(0); i < 300; i++ {
|
||||
require.NoError(t, m.Set(ctx, i, i))
|
||||
@ -152,6 +154,18 @@ func TestCollectionPagination(t *testing.T) {
|
||||
{Key: 295, Value: 295},
|
||||
},
|
||||
},
|
||||
"filtered no key with error": {
|
||||
req: &PageRequest{
|
||||
Limit: 3,
|
||||
},
|
||||
expResp: &PageResponse{
|
||||
NextKey: encodeKey(5),
|
||||
},
|
||||
filter: func(key, value uint64) (bool, error) {
|
||||
return false, dummyErr
|
||||
},
|
||||
wantErr: dummyErr,
|
||||
},
|
||||
}
|
||||
|
||||
for name, tc := range tcs {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user