Fix BindingToNormalizedStreamWriter.enter() 49/106549/2
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 20 Jun 2023 09:46:01 +0000 (11:46 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 20 Jun 2023 09:55:52 +0000 (11:55 +0200)
We have a blind cast which does not handle augmentations' children. Fix
the cast to work for augmentations as well.

JIRA: MDSAL-820
Change-Id: Ib32a65e475d5d786bcc0d353f5fe044c147e4c07
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BindingToNormalizedStreamWriter.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/CachingNormalizedNodeSerializer.java

index 4bee0d533b1d46bd15f4df300497aa173980efc1..598241165f84b345eb383e3d0a84207549105359 100644 (file)
@@ -82,7 +82,7 @@ final class BindingToNormalizedStreamWriter implements AnydataBindingStreamWrite
 
     private <T extends YangInstanceIdentifier.PathArgument> T enter(final String localName, final Class<T> identifier) {
         final var current = current();
-        final var next = ((DataObjectCodecContext<?, ?>) current).getLeafChild(localName);
+        final var next = ((AbstractDataObjectCodecContext<?, ?>) current).getLeafChild(localName);
         schema.push(next);
         return identifier.cast(next.getDomPathArgument());
     }
index 9677000d534a39fcbcde4d4f218e1af598851c54..7621f6f4018240f3b0c88651fbf286a50c12c4ef 100644 (file)
@@ -75,7 +75,7 @@ final class CachingNormalizedNodeSerializer extends ForwardingBindingStreamEvent
             // They are immutable and hence we can safely wrap them in LeafNodes and reuse them, if directed to do so.
             final var type = typed.getClass();
             if (cacheHolder.isCached(type)) {
-                final var context = ((DataObjectCodecContext<?, ?>) delegate.current()).getLeafChild(localName);
+                final var context = ((AbstractDataObjectCodecContext<?, ?>) delegate.current()).getLeafChild(localName);
                 if (context instanceof LeafNodeCodecContext.OfTypeObject<?> typeContext) {
                     final var cache = cacheHolder.getCachingSerializer(typeContext);
                     if (cache != null) {