From 3828846674877d5f88284e20475dc9a9ca6d3344 Mon Sep 17 00:00:00 2001 From: rushtong <grushton@broadinstitute.org> Date: Thu, 11 Jan 2024 13:52:13 -0500 Subject: [PATCH 1/3] handle null datasets on a study update --- .../consent/http/service/DatasetRegistrationService.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/org/broadinstitute/consent/http/service/DatasetRegistrationService.java b/src/main/java/org/broadinstitute/consent/http/service/DatasetRegistrationService.java index b44100da65..dcffcc0914 100644 --- a/src/main/java/org/broadinstitute/consent/http/service/DatasetRegistrationService.java +++ b/src/main/java/org/broadinstitute/consent/http/service/DatasetRegistrationService.java @@ -738,6 +738,9 @@ public List<Dataset> createdDatasetsFromUpdatedStudy(Study updatedStudy, List<DatasetServiceDAO.DatasetUpdate> datasetUpdates) { List<Integer> datasetUpdateIds = datasetUpdates.stream() .map(DatasetServiceDAO.DatasetUpdate::datasetId).toList(); + if (updatedStudy.getDatasets() == null) { + return List.of(); + } return updatedStudy.getDatasets().stream().filter( dataset -> !datasetUpdateIds.contains(dataset.getDataSetId())).toList(); } From 08eb5b67f102dba6d7215331585d9b1c6ebaf245 Mon Sep 17 00:00:00 2001 From: rushtong <grushton@broadinstitute.org> Date: Thu, 11 Jan 2024 13:58:56 -0500 Subject: [PATCH 2/3] handle null dataset updates --- .../consent/http/service/DatasetRegistrationService.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/broadinstitute/consent/http/service/DatasetRegistrationService.java b/src/main/java/org/broadinstitute/consent/http/service/DatasetRegistrationService.java index dcffcc0914..a4429f5444 100644 --- a/src/main/java/org/broadinstitute/consent/http/service/DatasetRegistrationService.java +++ b/src/main/java/org/broadinstitute/consent/http/service/DatasetRegistrationService.java @@ -736,8 +736,9 @@ private List<DatasetProperty> convertConsentGroupToDatasetProperties(ConsentGrou */ public List<Dataset> createdDatasetsFromUpdatedStudy(Study updatedStudy, List<DatasetServiceDAO.DatasetUpdate> datasetUpdates) { - List<Integer> datasetUpdateIds = datasetUpdates.stream() - .map(DatasetServiceDAO.DatasetUpdate::datasetId).toList(); + List<Integer> datasetUpdateIds = (datasetUpdates == null) ? + List.of() : + datasetUpdates.stream().map(DatasetServiceDAO.DatasetUpdate::datasetId).toList(); if (updatedStudy.getDatasets() == null) { return List.of(); } From 024b37dcb5b0e530b2b69cfc074417709f100991 Mon Sep 17 00:00:00 2001 From: rushtong <grushton@broadinstitute.org> Date: Thu, 11 Jan 2024 13:59:26 -0500 Subject: [PATCH 3/3] test for null conditions --- .../http/service/DatasetRegistrationServiceTest.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/test/java/org/broadinstitute/consent/http/service/DatasetRegistrationServiceTest.java b/src/test/java/org/broadinstitute/consent/http/service/DatasetRegistrationServiceTest.java index f8f0043362..d582a0e8f1 100644 --- a/src/test/java/org/broadinstitute/consent/http/service/DatasetRegistrationServiceTest.java +++ b/src/test/java/org/broadinstitute/consent/http/service/DatasetRegistrationServiceTest.java @@ -342,6 +342,17 @@ public void testCreatedDatasetsFromUpdatedStudy() { assertEquals(expectedIds, actualIds); } + @Test + public void testCreatedDatasetsFromUpdatedStudyNoDatasets() { + Study study = mock(); + List<DatasetUpdate> updatedDatasets = null; + initService(); + when(study.getDatasets()).thenReturn(null); + List<Dataset> datasets = datasetRegistrationService.createdDatasetsFromUpdatedStudy(study, + updatedDatasets); + assertTrue(datasets.isEmpty()); + } + @Test public void testInsertAccessManagement() throws Exception { User user = mock();