From 51e0d77ffd1259991a60da3190b852a0ab6d7838 Mon Sep 17 00:00:00 2001 From: Kammerlo Date: Mon, 22 Jan 2024 14:48:59 +0100 Subject: [PATCH] #360 fixed getSubListByPage. Error occured when page > 1 was requested, but not enough elements are available. So page 2 must be empty for example. --- .../backend/koios/KoiosUtxoService.java | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/backend-modules/koios/src/main/java/com/bloxbean/cardano/client/backend/koios/KoiosUtxoService.java b/backend-modules/koios/src/main/java/com/bloxbean/cardano/client/backend/koios/KoiosUtxoService.java index a542adc4..9285c5f6 100644 --- a/backend-modules/koios/src/main/java/com/bloxbean/cardano/client/backend/koios/KoiosUtxoService.java +++ b/backend-modules/koios/src/main/java/com/bloxbean/cardano/client/backend/koios/KoiosUtxoService.java @@ -129,13 +129,21 @@ private Result> convertToUTxOs(String address, List utxo return Result.success("OK").withValue(utxoList).code(200); } + /** + * Returns sublist of a page. If a page is empty and emptyList will be returned. + * @param list + * @param pageNumber + * @param pageSize + * @return + */ public static List getSubListByPage(List list, int pageNumber, int pageSize) { int start = 0; int end; - if (pageNumber >= 0) { + if (pageNumber > 0) { start = pageSize * (pageNumber - 1); - + } else if(pageNumber <= 0) { + return Collections.emptyList(); } if (pageSize > 0) { end = start + pageSize; @@ -143,10 +151,13 @@ public static List getSubListByPage(List list, int pag end = start; } if (list.size() < end + 1) { - end = list.size() - 1; + end = list.size(); } - end = Math.max(end, 0); - return list.subList(start, end); + if(end < start) { + return Collections.emptyList(); + } else { + return list.subList(start, end); + } } }