Fixed bug in Decimal64 constructor. 12/1112/2
authorMartin Vitez <mvitez@cisco.com>
Fri, 6 Sep 2013 09:20:26 +0000 (11:20 +0200)
committerMartin Vitez <mvitez@cisco.com>
Fri, 6 Sep 2013 09:36:55 +0000 (11:36 +0200)
Change-Id: I2a756cc413346d071ae9f9170cbd66bf805833f0
Signed-off-by: Martin Vitez <mvitez@cisco.com>
yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/Decimal64.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/ParserListenerUtils.java

index cbb45b6744467e6acb344bc371a14a1b582dac9f..cfc39994799edd9e9088bc083ff359cd3b623467 100644 (file)
@@ -61,7 +61,7 @@ public final class Decimal64 implements DecimalTypeDefinition {
      * @exception IllegalArgumentException
      */
     public Decimal64(final SchemaPath path, final Integer fractionDigits) {
-        if (!((fractionDigits.intValue() > 1) && (fractionDigits.intValue() <= 18))) {
+        if (!((fractionDigits.intValue() >= 1) && (fractionDigits.intValue() <= 18))) {
             throw new IllegalArgumentException(
                     "The fraction digits outside of boundaries. Fraction digits MUST be integer between 1 and 18 inclusively");
         }
index de8cf8567713a2ba2b32a2b0c293913aa0bba096..27b28a40becc2486f195742939ff3d2c0631d78f 100644 (file)
@@ -1078,7 +1078,11 @@ public final class ParserListenerUtils {
 
         if ("decimal64".equals(typeName)) {
             if (rangeStatements.isEmpty()) {
-                return new Decimal64(baseTypePath, fractionDigits);
+                try {
+                    return new Decimal64(baseTypePath, fractionDigits);
+                } catch(Exception e) {
+                    throw new YangParseException(moduleName, line, e.getMessage());
+                }
             }
             Decimal64 decimalType = new Decimal64(extBaseTypePath, fractionDigits);
             constraints.addRanges(decimalType.getRangeStatements());