From 07100904d0ac0aa25288187526f8f25466b84cc2 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 22 Jan 2016 18:56:06 +0100 Subject: [PATCH 1/1] Add leaf context when value deserialization fails When the codecs throw an IllegalArgumentException, it is useful to know which leaf has failed to parse. Catch the exception and chain it to an exception which gives more context. Change-Id: I6466b5d86294a1f0116477081267a80c0a696bfb Signed-off-by: Robert Varga --- .../transform/dom/parser/LeafNodeDomParser.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/transform/dom/parser/LeafNodeDomParser.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/transform/dom/parser/LeafNodeDomParser.java index e059deadf9..6f32c13c1c 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/transform/dom/parser/LeafNodeDomParser.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/transform/dom/parser/LeafNodeDomParser.java @@ -20,7 +20,6 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.w3c.dom.Element; final class LeafNodeDomParser extends LeafNodeBaseParser { - private final XmlCodecProvider codecProvider; private final SchemaContext ctx; @@ -38,13 +37,17 @@ final class LeafNodeDomParser extends LeafNodeBaseParser { @Override protected Object parseLeaf(final Element xmlElement, final LeafSchemaNode schema) { - return ctx == null ? DomUtils.parseXmlValue(xmlElement, codecProvider, schema.getType()) - : DomUtils.parseXmlValue(xmlElement, codecProvider, schema, schema.getType(), ctx); + try { + return ctx == null ? DomUtils.parseXmlValue(xmlElement, codecProvider, schema.getType()) + : DomUtils.parseXmlValue(xmlElement, codecProvider, schema, schema.getType(), ctx); + } catch (IllegalArgumentException e) { + throw new IllegalArgumentException(String.format("Failed to parse element %s as leaf %s", + xmlElement, schema.getPath()), e); + } } @Override protected Map getAttributes(final Element element) { return DomUtils.toAttributes(element.getAttributes()); } - } -- 2.36.6