From: Periyasamy Palanisamy Date: Wed, 24 Feb 2016 07:14:27 +0000 (+0530) Subject: Bug 5334 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=cd681f1ba9c701d57ba330972d352f80d62ee2ba;p=vpnservice.git Bug 5334 Added code to avoid NPE duirng resync Change-Id: Iad151c2a5726408f76079b83cdc0fa770b181d51 Signed-off-by: Periyasamy Palanisamy (cherry picked from commit 35651c681489ca4c1fee31b72678a29d0eb45e88) --- diff --git a/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/vpnservice/elan/internal/ElanInstanceManager.java b/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/vpnservice/elan/internal/ElanInstanceManager.java index d1aca50e..6eed6843 100644 --- a/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/vpnservice/elan/internal/ElanInstanceManager.java +++ b/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/vpnservice/elan/internal/ElanInstanceManager.java @@ -8,6 +8,7 @@ package org.opendaylight.vpnservice.elan.internal; import com.google.common.base.Optional; + 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.DataChangeScope; @@ -112,11 +113,12 @@ public class ElanInstanceManager extends AbstractDataChangeListener identifier, ElanInstance original, ElanInstance update) { - if (original.getElanTag() == update.getElanTag()) { + Long existingElanTag = original.getElanTag(); + if (existingElanTag != null && existingElanTag == update.getElanTag()) { return; } else if (update.getElanTag() == null) { // update the elan-Instance with new properties - if(original.getMacTimeout() == update.getMacTimeout() && original.getDescription().equalsIgnoreCase(update.getDescription())) { + if(original.getMacTimeout().equals(update.getMacTimeout()) && original.getDescription().equalsIgnoreCase(update.getDescription())) { return; } ElanUtils.UpdateOperationalDataStore(broker, idManager, update); diff --git a/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/vpnservice/elan/internal/ElanInterfaceManager.java b/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/vpnservice/elan/internal/ElanInterfaceManager.java index 8dd1d769..0dce5c96 100644 --- a/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/vpnservice/elan/internal/ElanInterfaceManager.java +++ b/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/vpnservice/elan/internal/ElanInterfaceManager.java @@ -173,7 +173,6 @@ public class ElanInterfaceManager extends AbstractDataChangeListener getElanInstanceIdentifier(String elanName) { - return InstanceIdentifier.builder(ElanInstances.class) - .child(ElanInstance.class, new ElanInstanceKey(elanName)).build(); - } - public static InstanceIdentifier getElanInstanceIdentifier() { return InstanceIdentifier.builder(ElanInstances.class).child(ElanInstance.class).build(); } @@ -708,7 +703,7 @@ public class ElanUtils { MDSALUtil.syncWrite(broker, LogicalDatastoreType.OPERATIONAL, ElanUtils.getElanInfoEntriesOperationalDataPath(elanTag), elanTagName); ElanInstance elanInstanceWithTag = new ElanInstanceBuilder().setElanInstanceName(elanInstanceName).setDescription(elanInstanceAdded.getDescription()).setMacTimeout(elanInstanceAdded .getMacTimeout() == null ? ElanConstants.DEFAULT_MAC_TIME_OUT : elanInstanceAdded.getMacTimeout()).setKey(elanInstanceAdded.getKey()).setElanTag(elanTag).build(); - MDSALUtil.syncUpdate(broker, LogicalDatastoreType.CONFIGURATION, getElanInstanceIdentifier(elanInstanceName), elanInstanceWithTag); + MDSALUtil.syncUpdate(broker, LogicalDatastoreType.CONFIGURATION, getElanInstanceConfigurationDataPath(elanInstanceName), elanInstanceWithTag); } public static boolean isDpnPresent(BigInteger dpnId) {