Make SimpleDateFormatUtil non-lenient 31/62731/4
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 5 Sep 2017 21:33:30 +0000 (23:33 +0200)
committerRobert Varga <nite@hq.sk>
Wed, 13 Sep 2017 11:59:39 +0000 (11:59 +0000)
Converting an illegal revision, like 2017-16-05, results in incorrect
results in that the resulting Date will reflect 2018-04-05, which is
no a reversible transformation -- leading to hard to fix issues when
a String and Date representation meet.

Make sure we do not allow such invalid revisions through and fixup
bad test models.

Change-Id: I138cb5357cd6898bd64b745fbfed5d05b593e1e1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/SimpleDateFormatUtil.java
yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/impl/util/YangModelDependencyInfoTest.java
yang/yang-parser-impl/src/test/resources/parse-methods/dependencies/m2@2013-09-30.yang [moved from yang/yang-parser-impl/src/test/resources/parse-methods/dependencies/m2@2013-30-09.yang with 86% similarity]
yang/yang-parser-impl/src/test/resources/parse-methods/m1.yang
yang/yang-parser-impl/src/test/resources/parse-methods/m2@2013-09-30.yang [moved from yang/yang-parser-impl/src/test/resources/parse-methods/m2@2013-30-09.yang with 86% similarity]

index b6a2b2a26fc66c0d4c2eeca17f9f5eed8c023ece..1edbaa08a017ebc093b712ce39f1e664ca090eb1 100644 (file)
@@ -59,7 +59,9 @@ public final class SimpleDateFormatUtil {
 
         @Override
         protected SimpleDateFormat initialValue() {
-            return new SimpleDateFormat(REVISION_SIMPLE_DATE);
+            final SimpleDateFormat fmt = new SimpleDateFormat(REVISION_SIMPLE_DATE);
+            fmt.setLenient(false);
+            return fmt;
         }
 
         @Override
index 3935ac5d80e6987e4ad1cb1cb05da59a1696b33a..de0e17ff4314cc8c7ed1e42e112a9d0f61f6dbe0 100644 (file)
@@ -32,11 +32,11 @@ public class YangModelDependencyInfoTest {
 
     @Test
     public void testModuleWithImports() {
-        InputStream stream = getClass().getResourceAsStream("/parse-methods/dependencies/m2@2013-30-09.yang");
+        InputStream stream = getClass().getResourceAsStream("/parse-methods/dependencies/m2@2013-09-30.yang");
         YangModelDependencyInfo info = YangModelDependencyInfo.fromInputStream(stream);
         assertNotNull(info);
         assertEquals("m2", info.getName());
-        assertEquals("2013-30-09", info.getFormattedRevision());
+        assertEquals("2013-09-30", info.getFormattedRevision());
         assertNotNull(info.getDependencies());
         assertEquals(2, info.getDependencies().size());
     }
index c7063ab46054b87d17d3e36f396720b8ae50e4f6..1a92628f0245ea2860e8392ccad11e78e1ef03fc 100644 (file)
@@ -6,13 +6,13 @@ module m1 {
 
     import m2 {
         prefix "m2";
-        revision-date 2013-30-09;
+        revision-date 2013-09-30;
     }
     import m3 {
         prefix "m3";
     }
 
-     revision 2013-10-16 {
+    revision 2013-10-16 {
     }
 
 }
similarity index 86%
rename from yang/yang-parser-impl/src/test/resources/parse-methods/m2@2013-30-09.yang
rename to yang/yang-parser-impl/src/test/resources/parse-methods/m2@2013-09-30.yang
index af6ca8b8134988d92597f484b0089e1c16548c37..d541875d97446a0be3efd33a853bcbdcb247eedc 100644 (file)
@@ -11,7 +11,7 @@ module m2 {
         prefix "m5";
     }
 
-     revision 2013-30-09 {
+    revision 2013-09-30 {
     }
 
 }