From 6095d2399ec021436cf2ced017e239b7be056538 Mon Sep 17 00:00:00 2001 From: Alan Davis Date: Fri, 27 Mar 2015 22:55:57 +0000 Subject: [PATCH] Merged HEAD-BUG-FIX (5.1/Cloud) to HEAD (5.1/Cloud) 99763: Merged 5.0.N (5.0.2) to HEAD-BUG-FIX (5.1/Cloud) 99694: Merged V4.2-BUG-FIX (4.2.5) to 5.0.N (5.0.2) 99487: Merged DEV to V4.2-BUG-FIX (4.2.5) 99401: MNT-13567: [Workflow Public API] : incorrect hasMoreItems value - Comparison operator was changed to take in account SkipCount > totalItems condition. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@100490 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../rest/workflow/api/impl/DeploymentsImpl.java | 2 +- .../workflow/api/impl/ProcessDefinitionsImpl.java | 2 +- .../rest/workflow/api/impl/ProcessesImpl.java | 2 +- .../alfresco/rest/workflow/api/impl/TasksImpl.java | 4 ++-- .../test/workflow/api/impl/ProcessesImplTest.java | 12 +++++++++++- 5 files changed, 16 insertions(+), 6 deletions(-) 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());