From 41a04c117375a7d81b85b4a59198c3b7b633c12f Mon Sep 17 00:00:00 2001 From: Tomas Cere Date: Wed, 20 May 2015 13:45:36 +0200 Subject: [PATCH] Fix Subtree filter failing prefix lookup in element. If element is f.ex a mac adress subtree filter would try to match a nonexisting prefix. Change-Id: Id23d78f6c7312f7c7b0b4f92f1cd99d97932de7f Signed-off-by: Tomas Cere --- .../controller/netconf/impl/SubtreeFilter.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/SubtreeFilter.java b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/SubtreeFilter.java index 566dfde7c3..d56648cdf0 100644 --- a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/SubtreeFilter.java +++ b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/SubtreeFilter.java @@ -167,16 +167,23 @@ public class SubtreeFilter { } private static boolean prefixedContentMatches(final XmlElement filter, final XmlElement src) throws NetconfDocumentedException { - final Map.Entry prefixToNamespaceOfFilter = filter.findNamespaceOfTextContent(); - final Map.Entry prefixToNamespaceOfSrc = src.findNamespaceOfTextContent(); + final Map.Entry prefixToNamespaceOfFilter; + final Map.Entry prefixToNamespaceOfSrc; + try { + prefixToNamespaceOfFilter = filter.findNamespaceOfTextContent(); + prefixToNamespaceOfSrc = src.findNamespaceOfTextContent(); + } catch (IllegalArgumentException e) { + //if we can't find namespace of prefix - it's not a prefix, so it doesn't match + return false; + } final String prefix = prefixToNamespaceOfFilter.getKey(); // If this is not a prefixed content, we do not need to continue since content do not match - if(prefix.equals(XmlElement.DEFAULT_NAMESPACE_PREFIX)) { + if (prefix.equals(XmlElement.DEFAULT_NAMESPACE_PREFIX)) { return false; } // Namespace mismatch - if(!prefixToNamespaceOfFilter.getValue().equals(prefixToNamespaceOfSrc.getValue())) { + if (!prefixToNamespaceOfFilter.getValue().equals(prefixToNamespaceOfSrc.getValue())) { return false; } -- 2.36.6