From d44e88b6ccf497eb40e0fa3ec1a428f165275b09 Mon Sep 17 00:00:00 2001 From: "julian.schallenmueller" Date: Mon, 16 Jul 2018 07:57:34 +0200 Subject: [PATCH] TSK-637: Initialized return values to empty lists --- .../java/pro/taskana/impl/AttachmentImpl.java | 3 +++ .../taskana/impl/ClassificationQueryImpl.java | 6 ++--- .../impl/ObjectReferenceQueryImpl.java | 6 ++--- .../java/pro/taskana/impl/ReportBuilder.java | 26 +++++++++++++++++++ .../main/java/pro/taskana/impl/TaskImpl.java | 10 +++++++ .../java/pro/taskana/impl/TaskQueryImpl.java | 2 +- .../pro/taskana/impl/TaskSummaryImpl.java | 3 +++ .../pro/taskana/impl/WorkbasketQueryImpl.java | 6 ++--- .../impl/WorkbasketReportBuilderImpl.java | 4 +++ .../impl/CategoryReportBuilderImplTest.java | 17 ++++++++++++ .../ClassificationReportBuilderImplTest.java | 20 ++++++++++++++ .../taskana/impl/TestClassificationQuery.java | 2 +- .../impl/WorkbasketReportBuilderImplTest.java | 19 ++++++++++++++ 13 files changed, 113 insertions(+), 11 deletions(-) diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/AttachmentImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/AttachmentImpl.java index d3f6d580f..b41c0c369 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/AttachmentImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/AttachmentImpl.java @@ -117,6 +117,9 @@ public class AttachmentImpl implements Attachment { @Override public Map getCustomAttributes() { + if (customAttributes == null) { + customAttributes = new HashMap<>(); + } return customAttributes; } diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationQueryImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationQueryImpl.java index efab09f81..4d224b3c7 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationQueryImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/ClassificationQueryImpl.java @@ -374,7 +374,7 @@ public class ClassificationQueryImpl implements ClassificationQuery { @Override public List list() { LOGGER.debug("entry to list(), this = {}", this); - List result = null; + List result = new ArrayList<>(); try { taskanaEngine.openConnection(); result = taskanaEngine.getSqlSession().selectList(LINK_TO_SUMMARYMAPPER, this); @@ -392,7 +392,7 @@ public class ClassificationQueryImpl implements ClassificationQuery { @Override public List list(int offset, int limit) { LOGGER.debug("entry to list(offset = {}, limit = {}), this = {}", offset, limit, this); - List result = null; + List result = new ArrayList<>(); try { taskanaEngine.openConnection(); RowBounds rowBounds = new RowBounds(offset, limit); @@ -421,7 +421,7 @@ public class ClassificationQueryImpl implements ClassificationQuery { @Override public List listValues(String columnName, SortDirection sortDirection) { LOGGER.debug("Entry to listValues(dbColumnName={}) this = {}", columnName, this); - List result = null; + List result = new ArrayList<>(); try { taskanaEngine.openConnection(); this.columnName = columnName; diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/ObjectReferenceQueryImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/ObjectReferenceQueryImpl.java index 5261dabb0..8929aa824 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/ObjectReferenceQueryImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/ObjectReferenceQueryImpl.java @@ -73,7 +73,7 @@ public class ObjectReferenceQueryImpl implements ObjectReferenceQuery { @Override public List list() { LOGGER.debug("entry to list(), this = {}", this); - List result = null; + List result = new ArrayList<>(); try { taskanaEngine.openConnection(); result = taskanaEngine.getSqlSession().selectList(LINK_TO_MAPPER, this); @@ -91,7 +91,7 @@ public class ObjectReferenceQueryImpl implements ObjectReferenceQuery { @Override public List listValues(String columnName, SortDirection sortDirection) { LOGGER.debug("Entry to listValues(dbColumnName={}) this = {}", columnName, this); - List result = null; + List result = new ArrayList<>(); try { taskanaEngine.openConnection(); this.columnName = columnName; @@ -112,7 +112,7 @@ public class ObjectReferenceQueryImpl implements ObjectReferenceQuery { @Override public List list(int offset, int limit) { LOGGER.debug("entry to list(offset = {}, limit = {}), this = {}", offset, limit, this); - List result = null; + List result = new ArrayList<>(); try { taskanaEngine.openConnection(); RowBounds rowBounds = new RowBounds(offset, limit); diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/ReportBuilder.java b/lib/taskana-core/src/main/java/pro/taskana/impl/ReportBuilder.java index db7c34135..516c9dfc5 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/ReportBuilder.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/ReportBuilder.java @@ -1,6 +1,8 @@ package pro.taskana.impl; +import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -52,6 +54,9 @@ public abstract class ReportBuilder { } public List getColumnHeaders() { + if (columnHeaders == null) { + columnHeaders = new ArrayList<>(); + } return this.columnHeaders; } @@ -60,30 +65,51 @@ public abstract class ReportBuilder { } public List getWorkbasketIdIn() { + if (workbasketIds == null) { + workbasketIds = new ArrayList<>(); + } return this.workbasketIds; } public List getStateIn() { + if (states == null) { + states = new ArrayList<>(); + } return this.states; } public List getCategoryIn() { + if (categories == null) { + categories = new ArrayList<>(); + } return this.categories; } public List getDomainIn() { + if (domains == null) { + domains = new ArrayList<>(); + } return this.domains; } public List getClassificationIdsIn() { + if (classificationIds == null) { + classificationIds = new ArrayList<>(); + } return this.classificationIds; } public List getExcludedClassificationIdsIn() { + if (excludedClassificationIds == null) { + excludedClassificationIds = new ArrayList<>(); + } return this.excludedClassificationIds; } public Map getCustomAttributeFilter() { + if (customAttributeFilter == null) { + customAttributeFilter = new HashMap<>(); + } return this.customAttributeFilter; } diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskImpl.java index 2892d53e3..efa031169 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskImpl.java @@ -3,6 +3,7 @@ package pro.taskana.impl; import java.time.Instant; import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -307,6 +308,9 @@ public class TaskImpl implements Task { @Override public Map getCustomAttributes() { + if (customAttributes == null) { + customAttributes = new HashMap<>(); + } return customAttributes; } @@ -317,6 +321,9 @@ public class TaskImpl implements Task { @Override public Map getCallbackInfo() { + if (callbackInfo == null) { + callbackInfo = new HashMap<>(); + } return callbackInfo; } @@ -464,6 +471,9 @@ public class TaskImpl implements Task { @Override public List getAttachments() { + if (attachments == null) { + attachments = new ArrayList<>(); + } return attachments; } diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskQueryImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskQueryImpl.java index 1f8eac2c4..2dc4ea85d 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskQueryImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskQueryImpl.java @@ -773,7 +773,7 @@ public class TaskQueryImpl implements TaskQuery { @Override public List listValues(String columnName, SortDirection sortDirection) { LOGGER.debug("Entry to listValues(dbColumnName={}) this = {}", columnName, this); - List result = null; + List result = new ArrayList<>(); try { taskanaEngine.openConnection(); this.columnName = columnName; diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskSummaryImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskSummaryImpl.java index 14377f973..9095b8970 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskSummaryImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskSummaryImpl.java @@ -347,6 +347,9 @@ public class TaskSummaryImpl implements TaskSummary { @Override public List getAttachmentSummaries() { + if (attachmentSummaries == null) { + attachmentSummaries = new ArrayList<>(); + } return attachmentSummaries; } diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketQueryImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketQueryImpl.java index 6655018d4..56022d460 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketQueryImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketQueryImpl.java @@ -371,7 +371,7 @@ public class WorkbasketQueryImpl implements WorkbasketQuery { @Override public List list() { LOGGER.debug("entry to list(), this = {}", this); - List workbaskets = null; + List workbaskets = new ArrayList<>(); try { taskanaEngine.openConnection(); handleCallerRolesAndAccessIds(); @@ -390,7 +390,7 @@ public class WorkbasketQueryImpl implements WorkbasketQuery { @Override public List listValues(String columnName, SortDirection sortDirection) { LOGGER.debug("Entry to listValues(dbColumnName={}) this = {}", columnName, this); - List result = null; + List result = new ArrayList<>(); try { taskanaEngine.openConnection(); this.columnName = columnName; @@ -412,7 +412,7 @@ public class WorkbasketQueryImpl implements WorkbasketQuery { @Override public List list(int offset, int limit) { LOGGER.debug("entry to list(offset = {}, limit = {}), this = {}", offset, limit, this); - List workbaskets = null; + List workbaskets = new ArrayList<>(); try { taskanaEngine.openConnection(); RowBounds rowBounds = new RowBounds(offset, limit); diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketReportBuilderImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketReportBuilderImpl.java index b5b31c9b7..f2e301f97 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketReportBuilderImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/WorkbasketReportBuilderImpl.java @@ -1,5 +1,6 @@ package pro.taskana.impl; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -94,6 +95,9 @@ public class WorkbasketReportBuilderImpl extends ReportBuilder implements Workba } public List getCombinedClassificationFilterIn() { + if (combinedClassificationFilter == null) { + combinedClassificationFilter = new ArrayList<>(); + } return this.combinedClassificationFilter; } diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/CategoryReportBuilderImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/CategoryReportBuilderImplTest.java index 92ccc9ceb..9e0545ca6 100644 --- a/lib/taskana-core/src/test/java/pro/taskana/impl/CategoryReportBuilderImplTest.java +++ b/lib/taskana-core/src/test/java/pro/taskana/impl/CategoryReportBuilderImplTest.java @@ -208,6 +208,15 @@ public class CategoryReportBuilderImplTest { assertEquals(expectedResult, actualResult); } + @Test + public void testListTaskIdsForSelectedItemsIsEmptyResult() throws NotAuthorizedException, InvalidArgumentException { + SelectedItem selectedItem = new SelectedItem(); + List selectedItems = Collections.singletonList(selectedItem); + List result = cut.createCategoryReportBuilder() + .listTaskIdsForSelectedItems(selectedItems); + assertNotNull(result); + } + @Test public void testListCustomAttributeValuesForCustomAttributeName() throws NotAuthorizedException { @@ -257,4 +266,12 @@ public class CategoryReportBuilderImplTest { assertNotNull(actualResult); assertEquals(expectedResult, actualResult); } + + @Test + public void testListCustomAttributeValuesForCustomAttributeNameIsEmptyResult() throws NotAuthorizedException { + List result = cut.createCategoryReportBuilder() + .workbasketIdIn(Arrays.asList("DieGibtsSicherNed")) + .listCustomAttributeValuesForCustomAttributeName(CustomField.CUSTOM_1); + assertNotNull(result); + } } diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/ClassificationReportBuilderImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/ClassificationReportBuilderImplTest.java index fda1786c0..3e0864fd6 100644 --- a/lib/taskana-core/src/test/java/pro/taskana/impl/ClassificationReportBuilderImplTest.java +++ b/lib/taskana-core/src/test/java/pro/taskana/impl/ClassificationReportBuilderImplTest.java @@ -318,6 +318,17 @@ public class ClassificationReportBuilderImplTest { assertEquals(expectedResult, actualResult); } + @Test + public void testGetTaskIdsForSelectedItemsIsEmptyResult() throws NotAuthorizedException, InvalidArgumentException { + SelectedItem selectedItem = new SelectedItem(); + selectedItem.setKey("GIBTSNED"); + List selectedItems = Collections.singletonList(selectedItem); + List result = cut.createClassificationReportBuilder() + .workbasketIdIn(Arrays.asList("DieGibtsEhNed")) + .listTaskIdsForSelectedItems(selectedItems); + assertNotNull(result); + } + @Test public void testListCustomAttributeValuesForCustomAttributeName() throws NotAuthorizedException { @@ -368,4 +379,13 @@ public class ClassificationReportBuilderImplTest { assertEquals(expectedResult, actualResult); } + @Test + public void testListCustomAttributeValuesForCustomAttributeNameIsEmptyResult() + throws NotAuthorizedException { + List result = cut.createClassificationReportBuilder() + .workbasketIdIn(Arrays.asList("DieGibtsGarantiertNed")) + .listCustomAttributeValuesForCustomAttributeName(CustomField.CUSTOM_10); + assertNotNull(result); + } + } diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/TestClassificationQuery.java b/lib/taskana-core/src/test/java/pro/taskana/impl/TestClassificationQuery.java index 8c49af61f..10e698d3f 100644 --- a/lib/taskana-core/src/test/java/pro/taskana/impl/TestClassificationQuery.java +++ b/lib/taskana-core/src/test/java/pro/taskana/impl/TestClassificationQuery.java @@ -197,7 +197,7 @@ public class TestClassificationQuery implements ClassificationQuery { @Override public List list(int offset, int limit) { - return null; + return new ArrayList<>(); } @Override diff --git a/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketReportBuilderImplTest.java b/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketReportBuilderImplTest.java index f9ff2c007..8a7cbcb28 100644 --- a/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketReportBuilderImplTest.java +++ b/lib/taskana-core/src/test/java/pro/taskana/impl/WorkbasketReportBuilderImplTest.java @@ -222,6 +222,16 @@ public class WorkbasketReportBuilderImplTest { assertEquals(expectedResult, actualResult); } + @Test(expected = InvalidArgumentException.class) + public void testlistTaskIdsForSelectedItemsIsEmptyResult() + throws NotAuthorizedException, InvalidArgumentException { + List selectedItems = new ArrayList<>(); + List result = cut.createWorkbasketReportBuilder() + .workbasketIdIn(Arrays.asList("DieGibtsGarantiertNed")) + .listTaskIdsForSelectedItems(selectedItems); + assertNotNull(result); + } + @Test public void testListCustomAttributeValuesForCustomAttributeName() throws NotAuthorizedException { @@ -271,4 +281,13 @@ public class WorkbasketReportBuilderImplTest { assertNotNull(actualResult); assertEquals(expectedResult, actualResult); } + + @Test + public void testListCustomAttributeValuesForCustomAttributeNameIsEmptyResult() + throws NotAuthorizedException { + List result = cut.createWorkbasketReportBuilder() + .workbasketIdIn(Arrays.asList("GibtsSicherNed")) + .listCustomAttributeValuesForCustomAttributeName(CustomField.CUSTOM_14); + assertNotNull(result); + } }