diff --git a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/registry/mapping/impl/NacosServiceMapping.java b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/registry/mapping/impl/NacosServiceMapping.java index 0a2f1aed5..30a00b78a 100644 --- a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/registry/mapping/impl/NacosServiceMapping.java +++ b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/registry/mapping/impl/NacosServiceMapping.java @@ -112,26 +112,12 @@ private Set getAllServiceNames() throws NacosException { Set serviceNames = new HashSet<>(); int pageIndex = 1; - ListView listView = namingService.getServicesOfServer(pageIndex, PAGINATION_SIZE, - Constants.DEFAULT_GROUP); - // First page data - List firstPageData = listView.getData(); - // Append first page into list - serviceNames.addAll(firstPageData); - // the total count - int count = listView.getCount(); - // the number of pages - int pageNumbers = count / PAGINATION_SIZE; - int remainder = count % PAGINATION_SIZE; - // remain - if (remainder > 0) { - pageNumbers += 1; - } - // If more than 1 page - while (pageIndex < pageNumbers) { - listView = namingService.getServicesOfServer(++pageIndex, PAGINATION_SIZE, Constants.DEFAULT_GROUP); + ListView listView; + + do { + listView = namingService.getServicesOfServer(pageIndex++, PAGINATION_SIZE, Constants.DEFAULT_GROUP); serviceNames.addAll(listView.getData()); - } + } while (listView.getData().size() == PAGINATION_SIZE && !listView.getData().isEmpty()); return serviceNames; }