From: Michal Polkorab Date: Fri, 18 Sep 2015 14:10:59 +0000 (+0200) Subject: Bug 4327 - Fixed DataTreeChangeListener registration in PingPongDataBroker X-Git-Tag: release/beryllium~103 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=51cbb26e71bd09df82505f87a444bca294b85365;p=mdsal.git Bug 4327 - Fixed DataTreeChangeListener registration in PingPongDataBroker - delegate broker was incorrectly queried for DOMDataTreeChangeService - it must ask for supported extensions instead of instanceof Change-Id: I0310926893fc517bb1e1dca48d4966d6ffc18c74 Signed-off-by: Michal Polkorab --- diff --git a/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/PingPongDataBroker.java b/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/PingPongDataBroker.java index 8023cd7be6..a1ad050ad1 100644 --- a/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/PingPongDataBroker.java +++ b/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/PingPongDataBroker.java @@ -55,10 +55,11 @@ public final class PingPongDataBroker extends ForwardingDOMDataBroker implements @Override public ListenerRegistration registerDataTreeChangeListener(final DOMDataTreeIdentifier treeId, final L listener) { - if (delegate instanceof DOMDataTreeChangeService) { - return ((DOMDataTreeChangeService)delegate).registerDataTreeChangeListener(treeId, listener); + final DOMDataTreeChangeService treeService = + (DOMDataTreeChangeService) delegate.getSupportedExtensions().get(DOMDataTreeChangeService.class); + if(treeService != null) { + return treeService.registerDataTreeChangeListener(treeId, listener); } - throw new UnsupportedOperationException("Delegate " + delegate + " does not support required functionality"); } }