diff --git a/src/main/java/run/halo/app/service/impl/BaseCommentServiceImpl.java b/src/main/java/run/halo/app/service/impl/BaseCommentServiceImpl.java index 33dcb8e81..9b0754b5f 100644 --- a/src/main/java/run/halo/app/service/impl/BaseCommentServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/BaseCommentServiceImpl.java @@ -429,6 +429,11 @@ public abstract class BaseCommentServiceImpl extend // Get all comments Page topCommentPage = baseCommentRepository.findAllByPostIdAndStatusAndParentId(targetId, status, 0L, pageable); + if (topCommentPage.isEmpty()) { + // If the comments is empty + return ServiceUtils.buildEmptyPageImpl(topCommentPage); + } + // Get top comment ids Set topCommentIds = ServiceUtils.fetchProperty(topCommentPage.getContent(), BaseComment::getId); diff --git a/src/main/java/run/halo/app/utils/ServiceUtils.java b/src/main/java/run/halo/app/utils/ServiceUtils.java index a03bec409..ccb4480a9 100644 --- a/src/main/java/run/halo/app/utils/ServiceUtils.java +++ b/src/main/java/run/halo/app/utils/ServiceUtils.java @@ -1,8 +1,6 @@ package run.halo.app.utils; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; +import org.springframework.data.domain.*; import org.springframework.lang.NonNull; import org.springframework.lang.Nullable; import org.springframework.util.Assert; @@ -136,6 +134,21 @@ public class ServiceUtils { return buildLatestPageable(top, "createTime"); } + /** + * Build empty page result. + * + * @param page page info must not be null + * @param target page result type + * @param source page result type + * @return empty page result + */ + @NonNull + public static Page buildEmptyPageImpl(@NonNull Page page) { + Assert.notNull(page, "Page result must not be null"); + + return new PageImpl<>(Collections.emptyList(), page.getPageable(), page.getTotalElements()); + } + /** * Builds latest page request. *