From 3990fb6cfb912ba27256a729eb8d74129b278a11 Mon Sep 17 00:00:00 2001 From: felmer <franz-josef.elmer@id.ethz.ch> Date: Thu, 16 May 2019 11:42:49 +0200 Subject: [PATCH] SSDM-7557: NPE bug in hasInvalidCodes() fixed --- .../dataaccess/db/HibernateSearchDAO.java | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/HibernateSearchDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/HibernateSearchDAO.java index 1ea28d49a95..e84de4016b2 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/HibernateSearchDAO.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/HibernateSearchDAO.java @@ -815,22 +815,25 @@ final class HibernateSearchDAO extends HibernateDaoSupport implements IHibernate private boolean hasInvalidCodes(DetailedSearchCriteria searchCriteria) { - for (DetailedSearchCriterion criterion : searchCriteria.getCriteria()) + if (searchCriteria != null) { - String value = criterion.getValue(); - DetailedSearchField field = criterion.getField(); - DetailedSearchFieldKind kind = field.getKind(); - if (DetailedSearchFieldKind.ATTRIBUTE.equals(kind) && field.getAttributeCode().equals("CODE") - && VALID_CODE_PATTERN.matcher(value).matches() == false) + for (DetailedSearchCriterion criterion : searchCriteria.getCriteria()) { - return true; + String value = criterion.getValue(); + DetailedSearchField field = criterion.getField(); + DetailedSearchFieldKind kind = field.getKind(); + if (DetailedSearchFieldKind.ATTRIBUTE.equals(kind) && field.getAttributeCode().equals("CODE") + && VALID_CODE_PATTERN.matcher(value).matches() == false) + { + return true; + } } - } - for (DetailedSearchSubCriteria subCriteria : searchCriteria.getSubCriterias()) - { - if (hasInvalidCodes(subCriteria.getCriteria())) + for (DetailedSearchSubCriteria subCriteria : searchCriteria.getSubCriterias()) { - return true; + if (hasInvalidCodes(subCriteria.getCriteria())) + { + return true; + } } } return false; -- GitLab