From: Michal Polkorab Date: Tue, 22 Sep 2015 14:34:06 +0000 (+0200) Subject: Bug 4327 - Fixed DataTreeChangeListener registration in PingPongDataBroker X-Git-Tag: release/beryllium~266 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=03e639ec0e4b1b2a55a8763b5642b1118e52861c;hp=01efefc0fac622e608508e1910cab4575671c71d Bug 4327 - Fixed DataTreeChangeListener registration in PingPongDataBroker - delegate broker was incorrectly queried for DOMDataTreeChangeService - it must ask for supported extensions instead of instanceof - this is lithium branch fix, beryllium change: https://git.opendaylight.org/gerrit/#/c/27164/ Change-Id: Ie1757c762018e7188d76a7728f2f8ea52293d73f Signed-off-by: Michal Polkorab --- diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/PingPongDataBroker.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/PingPongDataBroker.java index 55f8a1557d..53de1a2944 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/PingPongDataBroker.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/PingPongDataBroker.java @@ -49,13 +49,15 @@ public final class PingPongDataBroker extends ForwardingDOMDataBroker implements @Override public void close() { - // TODO Auto-generated method stub + // intentionally NOOP } @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");