BUG-650: add missing bypass 63/10363/1
authorRobert Varga <rovarga@cisco.com>
Wed, 27 Aug 2014 10:29:55 +0000 (12:29 +0200)
committerRobert Varga <rovarga@cisco.com>
Wed, 27 Aug 2014 10:30:53 +0000 (12:30 +0200)
ChoiceNode is not representable either, so check for it early. Also
eliminate the FIXME, now that we are in the clear about what needs to
happen. Finally log offending class in warning, so we can track it down.

Change-Id: I4a35ff27725dab7f35b83ae1bcc6d728a313bd1c
Signed-off-by: Robert Varga <rovarga@cisco.com>
code-generator/binding-data-codec/src/main/java/org/opendaylight/yangtools/binding/data/codec/impl/BindingNormalizedNodeCodecRegistry.java

index dcfeaa34195db6cf6c793af6bfa8a8415a1cd8ab..f0ab64a21767bf7c6978fbf357627836895aa760 100644 (file)
@@ -35,6 +35,7 @@ import org.opendaylight.yangtools.yang.binding.DataObjectSerializerRegistry;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.LeafNode;
 import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
@@ -105,6 +106,9 @@ public class BindingNormalizedNodeCodecRegistry implements DataObjectSerializerR
     }
 
     private static boolean isBindingRepresentable(final NormalizedNode<?, ?> data) {
+        if (data instanceof ChoiceNode) {
+            return false;
+        }
         if (data instanceof LeafNode<?>) {
             return false;
         }
@@ -130,9 +134,8 @@ public class BindingNormalizedNodeCodecRegistry implements DataObjectSerializerR
         final List<PathArgument> builder = new ArrayList<>();
         final NodeCodecContext codec = codecContext.getCodecContextNode(path, builder);
         if (codec == null) {
-            // FIXME: do we allow data == null?
             if (data != null) {
-                LOG.warn("Path %s does not have a binding equivalent, should have been caught earlier", path);
+                LOG.warn("Path %s does not have a binding equivalent, should have been caught earlier (%s)", path, data.getClass());
             }
             return null;
         }