YANGTOOLS-813: add parent schemapath to error report 16/65716/3
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 20 Nov 2017 13:13:31 +0000 (14:13 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 20 Nov 2017 15:50:42 +0000 (16:50 +0100)
It is not immediately clear in what context the search is being
made -- make sure we report parent path, too.

Change-Id: I86a15b409c6241d93f24ee75cc68ff78fc067ebc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlParserStream.java
yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/StrictParsingModeTest.java
yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlToNormalizedNodesTest.java

index 3da0ccafcdf862ff41bbbcaf16f257f32676f5e1..bac8d12840db5e41ac472ccac50c6d49ba3d9d30 100644 (file)
@@ -356,8 +356,8 @@ public final class XmlParserStream implements Closeable, Flushable {
                                     new URI(xmlElementNamespace));
 
                     if (childDataSchemaNodes.isEmpty()) {
-                        checkState(!strictParsing, "Schema for node with name %s and namespace %s doesn't exist.",
-                            xmlElementName, xmlElementNamespace);
+                        checkState(!strictParsing, "Schema for node with name %s and namespace %s doesn't exist at %s",
+                            xmlElementName, xmlElementNamespace, parentSchema.getPath());
                         skipUnknownNode(in);
                         continue;
                     }
index fd15f68ba554d06aa0d8efb41c56a2b989767eb4..070b892464425948e6b0fa240d4744d37b59a60a 100644 (file)
@@ -8,8 +8,8 @@
 
 package org.opendaylight.yangtools.yang.data.codec.xml;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.io.InputStream;
@@ -78,8 +78,8 @@ public class StrictParsingModeTest {
             xmlParser.parse(reader);
             fail("IllegalStateException should have been thrown because of an unknown child node.");
         } catch (IllegalStateException ex) {
-            assertTrue(ex.getMessage().contains("Schema for node with name unknown-container-a and namespace "
-                    + "foo doesn't exist."));
+            assertEquals("Schema for node with name unknown-container-a and namespace foo doesn't exist at "
+                    + "AbsoluteSchemaPath{path=[(foo)top-level-container]}", ex.getMessage());
         }
     }
 }
index 9833be92bb572531f7a29e86f058e9ecd8376ce8..7414efb14e0c95cda386bdc88f974b19bdd489f8 100644 (file)
@@ -304,8 +304,9 @@ public class XmlToNormalizedNodesTest {
             xmlParser.parse(reader);
             fail("IllegalStateException should have been thrown because of an unknown child node.");
         } catch (IllegalStateException ex) {
-            assertTrue(ex.getMessage().contains("Schema for node with name my-container-1 and namespace baz-namespace"
-                        + " doesn't exist."));
+            assertEquals("Schema for node with name my-container-1 and namespace baz-namespace doesn't exist at "
+                    + "AbsoluteSchemaPath{path=[(baz-namespace)outer-container, (baz-namespace)my-container-1]}",
+                    ex.getMessage());
         }
     }