From 39675deed41059a6e20c44626385f39a04adf636 Mon Sep 17 00:00:00 2001 From: liapan Date: Fri, 8 Dec 2017 10:48:32 +0800 Subject: [PATCH] KYLIN-2953 List readable project not correct if add limit and offset --- .../apache/kylin/rest/controller/ProjectController.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/ProjectController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/ProjectController.java index 4bb8e82..21cd9cd 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/controller/ProjectController.java +++ b/server-base/src/main/java/org/apache/kylin/rest/controller/ProjectController.java @@ -20,6 +20,7 @@ package org.apache.kylin.rest.controller; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import org.apache.commons.lang.StringUtils; @@ -88,7 +89,7 @@ public class ProjectController extends BasicController { List readableProjects = new ArrayList(); //list all projects first - List projectInstances = projectService.listAllProjects(limit, offset); + List projectInstances = projectService.listAllProjects(null, null); for (ProjectInstance projectInstance : projectInstances) { @@ -108,7 +109,18 @@ public class ProjectController extends BasicController { } } - return readableProjects; + int projectLimit = (null == limit) ? Integer.MAX_VALUE : limit; + int projectOffset = (null == offset) ? 0 : offset; + + if (readableProjects.size() <= projectOffset) { + return Collections.emptyList(); + } + + if ((readableProjects.size() - projectOffset) < projectLimit) { + return readableProjects.subList(projectOffset, readableProjects.size()); + } + + return readableProjects.subList(projectOffset, projectOffset + projectLimit); } @RequestMapping(value = "", method = { RequestMethod.POST }, produces = { "application/json" }) -- 2.8.1