From 35651c681489ca4c1fee31b72678a29d0eb45e88 Mon Sep 17 00:00:00 2001 From: Periyasamy Palanisamy Date: Wed, 24 Feb 2016 12:44:27 +0530 Subject: [PATCH] Bug 5334 Added code to avoid NPE duirng resync Change-Id: Iad151c2a5726408f76079b83cdc0fa770b181d51 Signed-off-by: Periyasamy Palanisamy --- .../vpnservice/elan/internal/ElanInstanceManager.java | 6 ++++-- .../vpnservice/elan/internal/ElanInterfaceManager.java | 1 - .../vpnservice/elan/internal/ElanServiceProvider.java | 4 ++-- .../org/opendaylight/vpnservice/elan/utils/ElanUtils.java | 7 +------ 4 files changed, 7 insertions(+), 11 deletions(-) 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 d980ba94..5dbe4168 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(); } @@ -703,7 +698,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) { -- 2.36.6