username.setDataProvider(new CallbackDataProvider<>(query ->
userService.pageRadiusUsers(new RadiusUserFilter(query.getFilter().orElse(null),
true, false), PageRequest.of(query.getOffset(),
query.getLimit(), new Sort(Sort.Direction.ASC, "id")))
.stream(),
query -> (int) userService.countRadiusUsers(new RadiusUserFilter(query.getFilter()
.orElse(null), true, false))));
// AFTER (fixed):
username.setDataProvider(new CallbackDataProvider<>(query ->
userService.pageRadiusUsers(new RadiusUserFilter(query.getFilter().orElse(null),
true, false), PageRequest.of(query.getOffset() / query.getLimit(),
query.getLimit(), new Sort(Sort.Direction.ASC, "id")))
.stream(),
query -> (int) userService.countRadiusUsers(new RadiusUserFilter(query.getFilter()
.orElse(null), true, false))));```
```// BEFORE (broken) - groupName ComboBox:
groupName.setDataProvider(new CallbackDataProvider<>(query ->
userService.pageRadiusUsersGroup(new RadiusGroupFilter(query.getFilter().orElse(null),
true, false), PageRequest.of(query.getOffset(),
query.getLimit(), new Sort(Sort.Direction.ASC, "id")))
.stream(),
query -> (int) userService.countRadiusUsersGroup(new RadiusGroupFilter(query.getFilter()
.orElse(null), true, false))));
// AFTER (fixed):
groupName.setDataProvider(new CallbackDataProvider<>(query ->
userService.pageRadiusUsersGroup(new RadiusGroupFilter(query.getFilter().orElse(null),
true, false), PageRequest.of(query.getOffset() / query.getLimit(),
query.getLimit(), new Sort(Sort.Direction.ASC, "id")))
.stream(),
query -> (int) userService.countRadiusUsersGroup(new RadiusGroupFilter(query.getFilter()
.orElse(null), true, false))));
java.lang.IndexOutOfBoundsException: Index 50 out of bounds for length 50In the
AddUserToGroupDialog, theusernameComboBox data provider usesquery.getOffset()directly as the page number forPageRequest.of(), butgetOffset()returns the absolute row offset (e.g., 50), not the page index (e.g., 1). Same issue exists forgroupName. This causes thendexOutOfBoundsExceptionwhen the combo box tries to load its second page.The fix is in
UserToGroupView.java— dividequery.getOffset()byquery.getLimit()to get the correct page number:File:
src/main/java/software/netcore/radman/ui/view/UserToGroupView.javaChange both CallbackDataProvider lambdas inside AddUserToGroupDialog: