Fix missing init for VpnPseudoPortListener 81/47381/2
authorSam Hague <shague@redhat.com>
Sat, 22 Oct 2016 15:26:55 +0000 (11:26 -0400)
committerSam Hague <shague@redhat.com>
Sat, 22 Oct 2016 20:54:31 +0000 (20:54 +0000)
2016-10-21 17:21:27,920 | ERROR | rint Extender: 1 | BlueprintContainerImpl           | 15 - org.apache.aries.blueprint.core - 1.6.1 | Unable to start blueprint container for bundle org.opendaylight.netvirt.cloud-servicechain-impl/0.4.0.SNAPSHOT
org.osgi.service.blueprint.container.ComponentDefinitionException: Component 'vpnPseudoPortListener' does not have init-method: init
    at org.apache.aries.blueprint.container.BeanRecipe.getInitMethod(BeanRecipe.java:645)[15:org.apache.aries.blueprint.core:1.6.1]
        at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:833)[15:org.apache.aries.blueprint.core:1.6.1]
            at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:811)[15:org.apache.aries.blueprint.core:1.6.1]
                at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)[15:org.apache.aries.blueprint.core:1.6.1]
                    at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_102]
                        at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[15:org.apache.aries.blueprint.core:1.6.1]
                            at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:255)[15:org.apache.aries.blueprint.core:1.6.1]
                                at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:186)[15:org.apache.aries.blueprint.core:1.6.1]
                                    at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:724)[15:org.apache.aries.blueprint.core:1.6.1]
                                        at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:411)[15:org.apache.aries.blueprint.core:1.6.1]
                                            at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:276)[15:org.apache.aries.blueprint.core:1.6.1]
                                                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_102]
                                                    at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_102]
                                                        at org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106)[15:org.apache.aries.blueprint.core:1.6.1]
                                                            at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)[15:org.apache.aries.blueprint.core:1.6.1]
                                                                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_102]
                                                                    at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_102]
                                                                        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)[:1.8.0_102]
                                                                            at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)[:1.8.0_102]
                                                                                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_102]
                                                                                    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_102]
                                                                                        at java.lang.Thread.run(Thread.java:745)[:1.8.0_102]

Change-Id: I94825cd3e8ec6a33cc17a4ac76e26663ba1afe22
Signed-off-by: Sam Hague <shague@redhat.com>
vpnservice/cloud-servicechain/cloud-servicechain-impl/src/main/java/org/opendaylight/netvirt/cloudservicechain/listeners/VpnPseudoPortListener.java

index 14b7f53c95e59f647c1c5ea176a68a4ed0642e54..173d8c9f06f840842ecc456e1d5cf9d8d1c1133f 100755 (executable)
@@ -9,15 +9,13 @@ package org.opendaylight.netvirt.cloudservicechain.listeners;
 
 import org.opendaylight.controller.md.sal.binding.api.ClusteredDataChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker;
+import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.genius.datastoreutils.AsyncClusteredDataChangeListenerBase;
 import org.opendaylight.netvirt.cloudservicechain.utils.VpnPseudoPortCache;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.cloud.servicechain.state.rev170511.VpnToPseudoPortList;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.cloud.servicechain.state.rev170511.vpn.to.pseudo.port.list.VpnToPseudoPortData;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -31,33 +29,16 @@ public class VpnPseudoPortListener
     extends AsyncClusteredDataChangeListenerBase<VpnToPseudoPortData, VpnPseudoPortListener>
     implements AutoCloseable {
 
-    private ListenerRegistration<DataChangeListener> listenerRegistration;
-
     private static final Logger LOG = LoggerFactory.getLogger(VpnPseudoPortListener.class);
+    private final DataBroker dataBroker;
 
-    public VpnPseudoPortListener(final DataBroker broker) {
+    public VpnPseudoPortListener(final DataBroker dataBroker) {
         super(VpnToPseudoPortData.class, VpnPseudoPortListener.class);
-
-        try {
-            listenerRegistration = broker.registerDataChangeListener(LogicalDatastoreType.OPERATIONAL,
-                                                                     getWildCardPath(), this,
-                                                                     AsyncDataBroker.DataChangeScope.BASE);
-        } catch (final Exception e) {
-            LOG.error("VpnPseudoPort DataChange listener registration fail!", e);
-        }
+        this.dataBroker = dataBroker;
     }
 
-    @Override
-    public void close() {
-        if (listenerRegistration != null) {
-            try {
-                listenerRegistration.close();
-            } catch (final Exception e) {
-                LOG.error("Error when cleaning up DataChangeListener.", e);
-            }
-            listenerRegistration = null;
-        }
-        LOG.info("VpnPseudoPort listener Closed");
+    public void init() {
+        registerListener(LogicalDatastoreType.OPERATIONAL, dataBroker);
     }
 
     @Override