From 5ab41018b1da42e02681d2df3b3c10a40659e80f Mon Sep 17 00:00:00 2001 From: HMS17 Date: Thu, 19 Sep 2024 08:40:58 -0400 Subject: [PATCH] [BI-2310] - Exp import: extraneous error message --- .../importer/services/processors/ExperimentProcessor.java | 6 +++++- .../processors/experiment/ExperimentUtilities.java | 8 +++++++- .../workflow/steps/ValidatePendingImportObjectsStep.java | 6 +++++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/breedinginsight/brapps/importer/services/processors/ExperimentProcessor.java b/src/main/java/org/breedinginsight/brapps/importer/services/processors/ExperimentProcessor.java index 4f8d85b1b..a5fedaf84 100644 --- a/src/main/java/org/breedinginsight/brapps/importer/services/processors/ExperimentProcessor.java +++ b/src/main/java/org/breedinginsight/brapps/importer/services/processors/ExperimentProcessor.java @@ -972,7 +972,11 @@ private void validateUniqueObsUnits( String errorMessage = String.format("The ID (%s) is not unique within the environment(%s)", importRow.getExpUnitId(), importRow.getEnv()); this.addRowError(Columns.EXP_UNIT_ID, errorMessage, validationErrors, rowNum); } else { - uniqueStudyAndObsUnit.add(envIdPlusStudyId); + //Only want to add valid unique study-obs unit combos + //To avoid situations like system counting a null value as a unique combo + if (!envIdPlusStudyId.isBlank()) { + uniqueStudyAndObsUnit.add(envIdPlusStudyId); + } } } diff --git a/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/ExperimentUtilities.java b/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/ExperimentUtilities.java index d3e4dc1e2..ae015aab6 100644 --- a/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/ExperimentUtilities.java +++ b/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/ExperimentUtilities.java @@ -169,13 +169,19 @@ public static String createObservationUnitKey(ExperimentObservation importRow) { * * This method takes in the name of a study and the name of an observation unit and concatenates them to create a unique key. * + * If one or both of the inputs is null, returns an empty string since not a valid combination + * * @param studyName The name of the study * @param obsUnitName The name of the observation unit * @return A string representing the unique key formed by concatenating the study name and observation unit name */ public static String createObservationUnitKey(String studyName, String obsUnitName) { // Concatenate the study name and observation unit name to create the unique key - return studyName + obsUnitName; + if (studyName != null && obsUnitName != null) { + return studyName + obsUnitName; + } else { + return ""; + } } // Module/Script-level documentation diff --git a/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/create/workflow/steps/ValidatePendingImportObjectsStep.java b/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/create/workflow/steps/ValidatePendingImportObjectsStep.java index 99fbc12eb..b1391c483 100644 --- a/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/create/workflow/steps/ValidatePendingImportObjectsStep.java +++ b/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/create/workflow/steps/ValidatePendingImportObjectsStep.java @@ -290,7 +290,11 @@ private void validateUniqueObsUnits( String errorMessage = String.format("The ID (%s) is not unique within the environment(%s)", importRow.getExpUnitId(), importRow.getEnv()); ExperimentUtilities.addRowError(ExperimentObservation.Columns.EXP_UNIT_ID, errorMessage, validationErrors, rowNum); } else { - uniqueStudyAndObsUnit.add(envIdPlusStudyId); + //Only want to add valid unique study-obs unit combos + //To avoid situations like system counting a null value as a unique combo + if (!envIdPlusStudyId.isBlank()) { + uniqueStudyAndObsUnit.add(envIdPlusStudyId); + } } }