From f590327d054f08b91cea58020c164b44afa9ee2a Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 25 Jun 2021 17:27:39 +0200 Subject: [PATCH] Report ErrorType.APPLICATION from codecs Codecs are cross-referencing an already-parsed value with YANG constraints, which puts them squarely to Content layer of NETCONF protocol -- and that implies ErrorType.APPLICATION. JIRA: YANGTOOLS-1300 Change-Id: Icd6d2fbfbda554bc09978725d33f927d87d526ac Signed-off-by: Robert Varga --- .../yang/data/impl/codec/AbstractIntegerStringCodec.java | 6 ++---- .../yangtools/yang/data/impl/codec/BinaryStringCodec.java | 2 +- .../yang/data/impl/codec/CompiledPatternContext.java | 2 +- .../yangtools/yang/data/impl/codec/StringStringCodec.java | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/AbstractIntegerStringCodec.java b/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/AbstractIntegerStringCodec.java index 28df15b1ac..ac69cab0cf 100644 --- a/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/AbstractIntegerStringCodec.java +++ b/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/AbstractIntegerStringCodec.java @@ -99,7 +99,7 @@ public abstract class AbstractIntegerStringCodec ranges = rangeConstraint.getAllowedRanges(); if (!ranges.contains(deserialized)) { - throw new YangInvalidValueException(ErrorType.PROTOCOL, rangeConstraint, + throw new YangInvalidValueException(ErrorType.APPLICATION, rangeConstraint, "Value '" + deserialized + "' is not in required ranges " + ranges); } } @@ -127,9 +127,7 @@ public abstract class AbstractIntegerStringCodec ranges = lengthConstraint.getAllowedRanges(); if (!ranges.contains(value.length)) { - throw new YangInvalidValueException(ErrorType.PROTOCOL, lengthConstraint, + throw new YangInvalidValueException(ErrorType.APPLICATION, lengthConstraint, "Value length " + value.length + " is not in required ranges " + ranges); } } diff --git a/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/CompiledPatternContext.java b/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/CompiledPatternContext.java index 4419712893..c6fd32c15d 100644 --- a/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/CompiledPatternContext.java +++ b/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/CompiledPatternContext.java @@ -42,7 +42,7 @@ final class CompiledPatternContext { void validate(final String str) { if (pattern.matcher(str).matches() == invert) { - throw new YangInvalidValueException(ErrorType.PROTOCOL, constraint, + throw new YangInvalidValueException(ErrorType.APPLICATION, constraint, "Value '" + str + "' " + (invert ? "matches" : "does not match") + " regular expression '" + constraint.getRegularExpressionString() + "'"); } diff --git a/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/StringStringCodec.java b/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/StringStringCodec.java index cb34f1cc4a..4d1bcedc3c 100644 --- a/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/StringStringCodec.java +++ b/data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/StringStringCodec.java @@ -50,7 +50,7 @@ public class StringStringCodec extends TypeDefinitionAwareCodec ranges = lengthConstraint.getAllowedRanges(); if (!ranges.contains(str.codePointCount(0, str.length()))) { - throw new YangInvalidValueException(ErrorType.PROTOCOL, lengthConstraint, + throw new YangInvalidValueException(ErrorType.APPLICATION, lengthConstraint, "String " + str + " does not match allowed lengths " + ranges); } } -- 2.36.6