From 71a7cf61a093743b5d3c6925dcaf1b20a7b236ee Mon Sep 17 00:00:00 2001 From: David Randolph Phillips Date: Mon, 19 Feb 2024 12:15:01 -0500 Subject: [PATCH 1/2] [BI-2026] If studyYear is null, change it to a blank, to avoid a null-poiner-exception --- .../importer/services/processors/ExperimentProcessor.java | 6 +++--- 1 file changed, 3 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 525a5e5b5..c3346730e 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 @@ -578,7 +578,7 @@ private String getImportObservationHash(ExperimentObservation importRow, String private String getObservationHash(String observationUnitName, String variableName, String studyName) { String concat = DigestUtils.sha256Hex(observationUnitName) + DigestUtils.sha256Hex(variableName) + - DigestUtils.sha256Hex(studyName); + DigestUtils.sha256Hex(StringUtils.defaultString(studyName)); return DigestUtils.sha256Hex(concat); } @@ -792,12 +792,12 @@ private void validateConditionallyRequired(ValidationErrors validationErrors, in } } if(validateRequiredCell(importRow.getEnvYear(), Columns.ENV_YEAR, errorMessage, validationErrors, rowNum)) { - String studyYear = this.studyByNameNoScope.get(importRow.getEnv()).getBrAPIObject().getSeasons().get(0); + String studyYear = StringUtils.defaultString( this.studyByNameNoScope.get(importRow.getEnv()).getBrAPIObject().getSeasons().get(0) ); String rowYear = importRow.getEnvYear(); if(commit) { rowYear = this.yearToSeasonDbId(importRow.getEnvYear(), program.getId()); } - if(!studyYear.equals(rowYear)) { + if(StringUtils.isNotBlank(studyYear) && !studyYear.equals(rowYear)) { addRowError(Columns.ENV_YEAR, ENV_YEAR_MISMATCH, validationErrors, rowNum); } } From fc9c1c6db6b576802b709e37ee981aeed741e371 Mon Sep 17 00:00:00 2001 From: David Randolph Phillips Date: Fri, 8 Mar 2024 10:17:13 -0500 Subject: [PATCH 2/2] [BI-2026] protect against year = null --- .../importer/services/processors/ExperimentProcessor.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 c3346730e..58937983f 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 @@ -1824,7 +1824,11 @@ private String yearToSeasonDbIdFromDatabase(String year, UUID programId) { } if (targetSeason == null) { BrAPISeason newSeason = new BrAPISeason(); - newSeason.setYear(Integer.parseInt(year)); + Integer intYear = null; + if( StringUtils.isNotBlank(year) ){ + intYear = Integer.parseInt(year); + } + newSeason.setYear(intYear); newSeason.setSeasonName(year); targetSeason = this.brAPISeasonDAO.addOneSeason(newSeason, programId); }