Fix uninitialized LinkstateGraphProvider registration 14/88414/3
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 12 Mar 2020 21:02:40 +0000 (22:02 +0100)
committerRobert Varga <nite@hq.sk>
Fri, 13 Mar 2020 00:56:48 +0000 (00:56 +0000)
LinkstateGraphProvider is initializing a field and hence cannot
be registered from super class.

JIRA: BGPCEP-898
Change-Id: Iccf819df69957ebee8de3cbe926a7d13113fb244
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/config/AbstractBgpTopologyProvider.java
bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/config/LinkstateGraphProvider.java

index 0ff8df648729ae34ce23e94b35407026db360ae7..324f25e128d2c334fdeadae278a31144e9b68d81 100644 (file)
@@ -7,6 +7,8 @@
  */
 package org.opendaylight.bgpcep.bgp.topology.provider.config;
 
+import static java.util.Objects.requireNonNull;
+
 import java.util.HashMap;
 import java.util.Map;
 import org.opendaylight.bgpcep.bgp.topology.provider.AbstractTopologyBuilder;
@@ -34,13 +36,22 @@ abstract class AbstractBgpTopologyProvider implements BgpTopologyProvider, AutoC
     private static final Logger LOG = LoggerFactory.getLogger(AbstractBgpTopologyProvider.class);
 
     private final Map<TopologyId, TopologyReferenceSingletonService> topologyBuilders = new HashMap<>();
-    private final AbstractRegistration registration;
     private final DataBroker dataBroker;
     private final BgpTopologyDeployer deployer;
 
+    private AbstractRegistration registration;
+
+    AbstractBgpTopologyProvider(final BgpTopologyDeployer deployer, final DataBroker dataBroker) {
+        this.deployer = requireNonNull(deployer);
+        this.dataBroker = requireNonNull(dataBroker);
+    }
+
     AbstractBgpTopologyProvider(final BgpTopologyDeployer deployer) {
-        this.deployer = deployer;
-        this.dataBroker = deployer.getDataBroker();
+        this(deployer, deployer.getDataBroker());
+        register();
+    }
+
+    final void register() {
         this.registration = deployer.registerTopologyProvider(this);
     }
 
index 934c33c5b6aa575f520a7ffbee64700dd7fae9e4..501e1062f63757d886a9300246734f7b0122d606 100644 (file)
@@ -20,12 +20,12 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
 
 public final class LinkstateGraphProvider extends AbstractBgpTopologyProvider {
-
     private final ConnectedGraphProvider graphProvider;
 
     public LinkstateGraphProvider(final BgpTopologyDeployer deployer, final ConnectedGraphProvider graphProvider) {
-        super(deployer);
+        super(deployer, deployer.getDataBroker());
         this.graphProvider = requireNonNull(graphProvider);
+        register();
     }
 
     @Override