diff --git a/source/java/org/alfresco/rest/workflow/api/impl/DeploymentsImpl.java b/source/java/org/alfresco/rest/workflow/api/impl/DeploymentsImpl.java index 6ea90b0931..cb7859b5e2 100644 --- a/source/java/org/alfresco/rest/workflow/api/impl/DeploymentsImpl.java +++ b/source/java/org/alfresco/rest/workflow/api/impl/DeploymentsImpl.java @@ -65,7 +65,7 @@ public class DeploymentsImpl extends WorkflowRestImpl implements Deployments page.add(new Deployment(deployment)); } - return CollectionWithPagingInfo.asPaged(paging, page, page.size() != totalCount, totalCount); + return CollectionWithPagingInfo.asPaged(paging, page, (page.size() + paging.getSkipCount()) < totalCount, totalCount); } @Override diff --git a/source/java/org/alfresco/rest/workflow/api/impl/ProcessDefinitionsImpl.java b/source/java/org/alfresco/rest/workflow/api/impl/ProcessDefinitionsImpl.java index 9ba279306c..a81ba70ebd 100644 --- a/source/java/org/alfresco/rest/workflow/api/impl/ProcessDefinitionsImpl.java +++ b/source/java/org/alfresco/rest/workflow/api/impl/ProcessDefinitionsImpl.java @@ -232,7 +232,7 @@ public class ProcessDefinitionsImpl extends WorkflowRestImpl implements ProcessD page.add(createProcessDefinitionRest((ProcessDefinitionEntity) processDefinition)); } - return CollectionWithPagingInfo.asPaged(parameters.getPaging(), page, page.size() != totalCount, totalCount); + return CollectionWithPagingInfo.asPaged(parameters.getPaging(), page, (page.size() + parameters.getPaging().getSkipCount()) < totalCount, totalCount); } @Override diff --git a/source/java/org/alfresco/rest/workflow/api/impl/ProcessesImpl.java b/source/java/org/alfresco/rest/workflow/api/impl/ProcessesImpl.java index ad857b7236..1b1466cef1 100644 --- a/source/java/org/alfresco/rest/workflow/api/impl/ProcessesImpl.java +++ b/source/java/org/alfresco/rest/workflow/api/impl/ProcessesImpl.java @@ -496,7 +496,7 @@ public class ProcessesImpl extends WorkflowRestImpl implements Processes page.add(processInfo); } - return CollectionWithPagingInfo.asPaged(paging, page, (page.size() + paging.getSkipCount()) != totalCount, totalCount); + return CollectionWithPagingInfo.asPaged(paging, page, (page.size() + paging.getSkipCount()) < totalCount, totalCount); } @Override diff --git a/source/java/org/alfresco/rest/workflow/api/impl/TasksImpl.java b/source/java/org/alfresco/rest/workflow/api/impl/TasksImpl.java index 31db9dbcb2..18bb6b0ff9 100644 --- a/source/java/org/alfresco/rest/workflow/api/impl/TasksImpl.java +++ b/source/java/org/alfresco/rest/workflow/api/impl/TasksImpl.java @@ -596,7 +596,7 @@ public class TasksImpl extends WorkflowRestImpl implements Tasks throw new InvalidArgumentException("Invalid status parameter: " + status); } - return CollectionWithPagingInfo.asPaged(paging, page, page.size() != totalCount, totalCount); + return CollectionWithPagingInfo.asPaged(paging, page, (page.size() + paging.getSkipCount()) < totalCount, totalCount); } protected void addVariables(Task task, Boolean includeProcessVariables, Boolean includeTaskVariables, @@ -705,7 +705,7 @@ public class TasksImpl extends WorkflowRestImpl implements Tasks throw new InvalidArgumentException("Invalid status parameter: " + status); } - return CollectionWithPagingInfo.asPaged(paging, page, page.size() != totalCount, totalCount); + return CollectionWithPagingInfo.asPaged(paging, page, (page.size() + paging.getSkipCount()) < totalCount, totalCount); } @Override diff --git a/source/test-java/org/alfresco/rest/test/workflow/api/impl/ProcessesImplTest.java b/source/test-java/org/alfresco/rest/test/workflow/api/impl/ProcessesImplTest.java index 83b725ed9f..22c31a4049 100644 --- a/source/test-java/org/alfresco/rest/test/workflow/api/impl/ProcessesImplTest.java +++ b/source/test-java/org/alfresco/rest/test/workflow/api/impl/ProcessesImplTest.java @@ -171,6 +171,16 @@ public class ProcessesImplTest extends TestCase CollectionWithPagingInfo actualProcesses = queryActiveProcessesAndAssertResult(5, ACTIVE_WORKFLOWS_INITIAL_AMOUNT); assertFalse(actualProcesses.hasMoreItems()); } + + @Test + public void testHasMoreFalseAsPerMnt13567() throws Exception + { + CollectionWithPagingInfo actualProcesses = queryActiveProcessesAndAssertResult(ACTIVE_WORKFLOWS_INITIAL_AMOUNT, ACTIVE_WORKFLOWS_INITIAL_AMOUNT); + assertFalse(actualProcesses.hasMoreItems()); + + actualProcesses = queryActiveProcessesAndAssertResult(ACTIVE_WORKFLOWS_INITIAL_AMOUNT + 1, ACTIVE_WORKFLOWS_INITIAL_AMOUNT); + assertFalse(actualProcesses.hasMoreItems()); + } private CollectionWithPagingInfo queryActiveProcessesAndAssertResult(int skipCount, int maxItems) { @@ -182,7 +192,7 @@ public class ProcessesImplTest extends TestCase assertNotNull(result); assertNotNull(result.getCollection()); - int remainingProcessesAmount = ACTIVE_WORKFLOWS_INITIAL_AMOUNT - skipCount; + int remainingProcessesAmount = skipCount > ACTIVE_WORKFLOWS_INITIAL_AMOUNT ? 0 : ACTIVE_WORKFLOWS_INITIAL_AMOUNT - skipCount; if (maxItems >= remainingProcessesAmount) { assertEquals(remainingProcessesAmount, result.getCollection().size());