Fix superfluous warning 59/82559/2
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 18 Jun 2019 20:07:54 +0000 (22:07 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 19 Jun 2019 10:30:03 +0000 (12:30 +0200)
We can end up warning about choices which are not cached, just
because we have a miss. Fix this up so that we properly handle
rejected caching.

Change-Id: I90589e50a749c65226a1e174409e9fd744d7bc30
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataObjectStreamer.java

index b494d33962c094ee40f6c75d2e306699e9ccef64..9e652a558aad8b8d9971f8d4d52978d3a661955c 100644 (file)
@@ -94,8 +94,10 @@ public abstract class DataObjectStreamer<T extends DataObject> implements DataOb
             final Class<? extends DataContainer> caseClass = value.implementedInterface();
             writer.startChoiceNode(choiceClass, BindingStreamEventWriter.UNKNOWN_SIZE);
             final DataObjectSerializer caseStreamer = registry.getSerializer(caseClass.asSubclass(DataObject.class));
-            if (caseStreamer != null && tryCache(writer, (DataObject) value)) {
-                caseStreamer.serialize((DataObject) value, writer);
+            if (caseStreamer != null) {
+                if (tryCache(writer, (DataObject) value)) {
+                    caseStreamer.serialize((DataObject) value, writer);
+                }
             } else {
                 LOG.warn("No serializer for case {} is available in registry {}", caseClass, registry);
             }
@@ -202,7 +204,8 @@ public abstract class DataObjectStreamer<T extends DataObject> implements DataOb
         }
     }
 
-    private static boolean tryCache(final BindingStreamEventWriter writer, final DataObject value) {
-        return writer instanceof BindingSerializer ? ((BindingSerializer) writer).serialize(value) == null : true;
+    @SuppressWarnings("unchecked")
+    private static <T extends DataObject> boolean tryCache(final BindingStreamEventWriter writer, final T value) {
+        return writer instanceof BindingSerializer ? ((BindingSerializer<?, T>) writer).serialize(value) == null : true;
     }
 }