From: Giovanni Meo Date: Mon, 12 May 2014 13:53:28 +0000 (+0000) Subject: Merge "Bug 981: Fixed accidental shaddowing of data in Data Change Event." X-Git-Tag: autorelease-tag-v20140601202136_82eb3f9~101 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=2daa130ba957d1d41faa07474e055cbca6592962;hp=-c Merge "Bug 981: Fixed accidental shaddowing of data in Data Change Event." --- 2daa130ba957d1d41faa07474e055cbca6592962 diff --combined opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/AbstractForwardedDataBroker.java index 5155e42b82,3accaef5e9..2a866a94b3 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/AbstractForwardedDataBroker.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/AbstractForwardedDataBroker.java @@@ -96,8 -96,12 +96,12 @@@ public abstract class AbstractForwarded for (Map.Entry> entry : normalized .entrySet()) { try { - Entry, DataObject> binding = getCodec().toBinding(entry); - newMap.put(binding.getKey(), binding.getValue()); + Optional, DataObject>> potential = getCodec().toBinding( + entry); + if (potential.isPresent()) { + Entry, DataObject> binding = potential.get(); + newMap.put(binding.getKey(), binding.getValue()); + } } catch (DeserializationException e) { LOG.warn("Failed to transform {}, omitting it", entry, e); } @@@ -110,8 -114,11 +114,11 @@@ Set> hashSet = new HashSet<>(); for (org.opendaylight.yangtools.yang.data.api.InstanceIdentifier normalizedPath : normalized) { try { - InstanceIdentifier binding = getCodec().toBinding(normalizedPath); - hashSet.add(binding); + Optional> potential = getCodec().toBinding(normalizedPath); + if (potential.isPresent()) { + InstanceIdentifier binding = potential.get(); + hashSet.add(binding); + } } catch (DeserializationException e) { LOG.warn("Failed to transform {}, omitting it", normalizedPath, e); } @@@ -120,7 -127,7 +127,7 @@@ } protected Optional toBindingData(final InstanceIdentifier path, final NormalizedNode data) { - if(path.isWildcarded()) { + if (path.isWildcarded()) { return Optional.absent(); } @@@ -207,11 -214,7 +214,11 @@@ @Override public DataObject getOriginalSubtree() { if (originalDataCache == null) { - originalDataCache = toBindingData(path, domEvent.getOriginalSubtree()); + if(domEvent.getOriginalSubtree() != null) { + originalDataCache = toBindingData(path, domEvent.getOriginalSubtree()); + } else { + originalDataCache = Optional.absent(); + } } return originalDataCache.orNull(); } @@@ -219,23 -222,20 +226,23 @@@ @Override public DataObject getUpdatedSubtree() { if (updatedDataCache == null) { - updatedDataCache = toBindingData(path, domEvent.getUpdatedSubtree()); + if(domEvent.getUpdatedSubtree() != null) { + updatedDataCache = toBindingData(path, domEvent.getUpdatedSubtree()); + } else { + updatedDataCache = Optional.absent(); + } } - return updatedDataCache.orNull(); } @Override public String toString() { return Objects.toStringHelper(TranslatedDataChangeEvent.class) // - .add("created", getCreatedData()) // - .add("updated", getUpdatedData()) // - .add("removed", getRemovedPaths()) // - .add("dom", domEvent) // - .toString(); + .add("created", getCreatedData()) // + .add("updated", getUpdatedData()) // + .add("removed", getRemovedPaths()) // + .add("dom", domEvent) // + .toString(); } }