From: Marian Dubai Date: Wed, 22 Apr 2015 07:53:21 +0000 (+0200) Subject: Bug 2932: NPE on bundle activation X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=b4b56117ebbbd69d92bac5a898441e67f45d8ce6;hp=9fb1df14f2dc885fee1dce821b753cc99af6e54f Bug 2932: NPE on bundle activation Error might occured when value containing YangStoreContext is overwritten to null by refresh method, executed within another thread. After fix, in case context is null, context is calculated again. Change-Id: Icefe2a5970ec2ce0b67d5b3b386a35f781fc4156 Signed-off-by: Marian Dubai --- diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/osgi/YangStoreService.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/osgi/YangStoreService.java index 2961662092..ac3873e6b8 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/osgi/YangStoreService.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/osgi/YangStoreService.java @@ -137,15 +137,15 @@ public class YangStoreService implements YangStoreContext { } public AutoCloseable registerCapabilityListener(final CapabilityListener listener) { - final SoftReference yangStoreSnapshotSoftReference = ref.get(); - YangStoreContext ret = yangStoreSnapshotSoftReference != null ? yangStoreSnapshotSoftReference.get() : null; - if(ret == null) { - ret = getYangStoreSnapshot(); + YangStoreContext context = ref.get().get(); + + if(context == null) { + context = getYangStoreSnapshot(); } this.listeners.add(listener); - listener.onCapabilitiesAdded(NetconfOperationServiceFactoryImpl.setupCapabilities(ret)); + listener.onCapabilitiesAdded(NetconfOperationServiceFactoryImpl.setupCapabilities(context)); return new AutoCloseable() { @Override