diff options
Diffstat (limited to 'common-parameters/src/main/java/org/onap/policy/common/parameters/BeanValidator.java')
-rw-r--r-- | common-parameters/src/main/java/org/onap/policy/common/parameters/BeanValidator.java | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/common-parameters/src/main/java/org/onap/policy/common/parameters/BeanValidator.java b/common-parameters/src/main/java/org/onap/policy/common/parameters/BeanValidator.java index 3f5abccc..51b11402 100644 --- a/common-parameters/src/main/java/org/onap/policy/common/parameters/BeanValidator.java +++ b/common-parameters/src/main/java/org/onap/policy/common/parameters/BeanValidator.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -34,11 +34,14 @@ import org.onap.policy.common.parameters.annotations.NotBlank; import org.onap.policy.common.parameters.annotations.NotNull; import org.onap.policy.common.parameters.annotations.Pattern; import org.onap.policy.common.parameters.annotations.Valid; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Bean validator, supporting the parameter annotations. */ public class BeanValidator { + public static final Logger logger = LoggerFactory.getLogger(BeanValidator.class); /** * Validates top level fields within an object. For each annotated field, it retrieves @@ -147,18 +150,18 @@ public class BeanValidator { */ public boolean verRegex(BeanValidationResult result, String fieldName, Pattern annot, Object value) { try { - if (value instanceof String && !com.google.re2j.Pattern.matches(annot.regexp(), value.toString())) { - ObjectValidationResult result2 = new ObjectValidationResult(fieldName, xlate(value), - ValidationStatus.INVALID, "does not match regular expression " + annot.regexp()); - result.addResult(result2); - return false; + if (value instanceof String && com.google.re2j.Pattern.matches(annot.regexp(), value.toString())) { + return true; } + } catch (RuntimeException e) { - // TODO log at trace level - return true; + logger.warn("validation error for regular expression: {}", annot.regexp(), e); } - return true; + ObjectValidationResult result2 = new ObjectValidationResult(fieldName, xlate(value), ValidationStatus.INVALID, + "does not match regular expression " + annot.regexp()); + result.addResult(result2); + return false; } /** @@ -352,7 +355,7 @@ public class BeanValidator { */ public boolean verMap(BeanValidationResult result, String fieldName, EntryValidator entryValidator, Object value) { - if (!(value instanceof Map)) { + if (!(value instanceof Map) || entryValidator.isEmpty()) { return true; } |