BUG-7954: identify source of the offending statement
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / stmt / rfc6020 / ChildSchemaNodes.java
index f898e310a514c64e9e86edab76b08f6982974588..53d203269740daa9bbc1db2996c54fb9dfc31148 100644 (file)
@@ -54,9 +54,12 @@ public class ChildSchemaNodes<D extends DeclaredStatement<QName>, E extends Effe
         final StmtContext<?, D, E> prev = globalOrStatementSpecific(storage).putToLocalStorageIfAbsent(
             ChildSchemaNodes.class, key, value);
 
-        SourceException.throwIf(prev != null, value.getStatementSourceReference(),
-                "Error in module '%s': cannot add '%s'. Node name collision: '%s' already declared.", value.getRoot()
-                        .getStatementArgument(), key, prev != null ? prev.getStatementArgument() : null);
+        if (prev != null) {
+            throw new SourceException(value.getStatementSourceReference(),
+                "Error in module '%s': cannot add '%s'. Node name collision: '%s' already declared at %s",
+                value.getRoot().getStatementArgument(), key, prev.getStatementArgument(),
+                prev.getStatementSourceReference());
+        }
     }
 
     private static NamespaceStorageNode globalOrStatementSpecific(final NamespaceStorageNode storage) {