X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=elanmanager%2Fimpl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetvirt%2Felan%2Fl2gw%2Fha%2Fcommands%2FMergeCommand.java;h=c56d22e5782fbb969f707cab969a12cbc3855e5b;hb=2f0569ed75ef8a1fb60f992d19c8bbdf92ff45bf;hp=a15b431ac6dc490d0301d93295c50c0190fb00fe;hpb=09e87c1f400b1f41e1efa1a53d1fdcbfc8ac63a8;p=netvirt.git diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/MergeCommand.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/MergeCommand.java index a15b431ac6..c56d22e578 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/MergeCommand.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/MergeCommand.java @@ -7,20 +7,21 @@ */ package org.opendaylight.netvirt.elan.l2gw.ha.commands; -import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.OPERATIONAL; +import static org.opendaylight.mdsal.common.api.LogicalDatastoreType.OPERATIONAL; import static org.opendaylight.netvirt.elan.l2gw.ha.HwvtepHAUtil.isEmptyList; import java.io.Serializable; import java.util.ArrayList; +import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; -import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; -import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.mdsal.binding.api.ReadWriteTransaction; +import org.opendaylight.mdsal.binding.api.WriteTransaction; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.netvirt.elan.l2gw.ha.HwvtepHAUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical.locator.set.attributes.LocatorSet; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TpId; @@ -129,18 +130,32 @@ public abstract class MergeCommand transform(InstanceIdentifier nodePath, List list) { - return list.stream().map(t -> transform(nodePath, t)).collect(Collectors.toList()); + if (list != null) { + return list.stream().map(t -> transform(nodePath, t)).collect(Collectors.toList()); + } + return new ArrayList<>(); } public abstract T transform(InstanceIdentifier nodePath, T objT); + List getDataSafe(Z existingData) { + if (existingData == null) { + return Collections.EMPTY_LIST; + } + List result = getData(existingData); + if (result == null) { + return Collections.EMPTY_LIST; + } + return result; + } + @Override public void mergeOperationalData(Y dst, Z existingData, Z src, InstanceIdentifier nodePath) { - List origDstData = getData(existingData); - List srcData = getData(src); + List origDstData = getDataSafe(existingData); + List srcData = getDataSafe(src); List data = transformOpData(origDstData, srcData, nodePath); setData(dst, data); if (!isEmptyList(data)) { @@ -149,10 +164,11 @@ public abstract class MergeCommand nodePath) { - List data = getData(src); + List data = getDataSafe(src); List transformed = transformConfigData(data, nodePath); setData(dst, transformed); if (!isEmptyList(data)) {