checkNotNull(path, "Invalid instance identifier %s. Cannot create BA equivalent.", yangInstanceIdentifier);
LOG.debug("OperationalDataTree.readNode(), path={}", path);
- final Optional<? extends DataObject> dataObject;
+ final Optional<? extends DataObject> dataObject = readerRegistry.read(path, ctx);
+
+ // Modification cache should not be used after DOs are read, so we can clear it now to reduce peak footprint.
+ ctx.getModificationCache().close();
- dataObject = readerRegistry.read(path, ctx);
if (dataObject.isPresent()) {
final NormalizedNode<?, ?> value = toNormalizedNodeFunction(path).apply(dataObject.get());
return Optional.<NormalizedNode<?, ?>>fromNullable(value);
final Multimap<InstanceIdentifier<? extends DataObject>, ? extends DataObject> dataObjects =
readerRegistry.readAll(ctx);
+ // Modification cache should not be used after DOs are read, so we can clear it now to reduce peak footprint.
+ // Even greater reduction can be achieved with HONEYCOMB-361.
+ ctx.getModificationCache().close();
+
for (final InstanceIdentifier<? extends DataObject> instanceIdentifier : dataObjects.keySet()) {
final YangInstanceIdentifier rootElementId = serializer.toYangInstanceIdentifier(instanceIdentifier);
final NormalizedNode<?, ?> node =