Uploaded image for project: 'mdsal'
  1. mdsal
  2. MDSAL-668

Issue serializing object type defined by a leafref

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Medium Medium
    • 8.0.0, 7.0.8
    • None
    • Binding runtime
    • None

      In TransportPCE, we have encountered an issue since Silicon with the implementation of org-openroadm-device@2020-05-29.yang model.
      The problem is located in line 1300:

      leaf-list port-list {
        type leafref {
          path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
        }
      
        description "port list";
        }
      }
      

       

      The List<?> type of port-list, generated during compilation of the model, seems not being taken into account during serialization step and throws an IllegalStateException:

      Caused by: java.lang.IllegalStateException: Unexpected return type ?
      	at org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext.getLeafNodesUsingReflection(BindingCodecContext.java:386) ~[?:?]
      	at org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext.getLeafNodes(BindingCodecContext.java:355) ~[?:?]
      	at org.opendaylight.mdsal.binding.dom.codec.impl.DataObjectCodecContext.<init>(DataObjectCodecContext.java:102) ~[?:?]
      	at org.opendaylight.mdsal.binding.dom.codec.impl.ListNodeCodecContext.<init>(ListNodeCodecContext.java:28) ~[?:?]
      	at org.opendaylight.mdsal.binding.dom.codec.impl.KeyedListNodeCodecContext.<init>(KeyedListNodeCodecContext.java:54) ~[?:?]
      	at org.opendaylight.mdsal.binding.dom.codec.impl.KeyedListNodeCodecContext$Unordered.<init>(KeyedListNodeCodecContext.java:41) ~[?:?]
      	at org.opendaylight.mdsal.binding.dom.codec.impl.KeyedListNodeCodecContext.create(KeyedListNodeCodecContext.java:71) ~[?:?]
      	at org.opendaylight.mdsal.binding.dom.codec.impl.DataContainerCodecPrototype.createInstance(DataContainerCodecPrototype.java:237) ~[?:?]
      	at org.opendaylight.mdsal.binding.dom.codec.impl.DataContainerCodecPrototype.loadInstance(DataContainerCodecPrototype.java:224) ~[?:?]
      	at org.opendaylight.mdsal.binding.dom.codec.impl.DataContainerCodecPrototype.get(DataContainerCodecPrototype.java:220) ~[?:?]
      	at org.opendaylight.mdsal.binding.dom.codec.impl.DataObjectCodecContext.streamChild(DataObjectCodecContext.java:195) ~[?:?]
      	at org.opendaylight.mdsal.binding.dom.codec.impl.CodecDataObject.codecMember(CodecDataObject.java:81) ~[?:?]
      	at org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev200529.circuit.pack.Ports$$$codecImpl.getSupportingPortList(Unknown Source) ~[?:?]
      	at org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev200529.circuit.pack.Ports$$$streamer.serialize(Unknown Source) ~[?:?]
      	at org.opendaylight.mdsal.binding.dom.codec.impl.DataObjectStreamer.commonStreamList(DataObjectStreamer.java:153) ~[?:?]
      	at org.opendaylight.mdsal.binding.dom.codec.impl.DataObjectStreamer.streamMap(DataObjectStreamer.java:133) ~[?:?]
      	at org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev200529.circuit.packs.CircuitPacks$$$streamer.serialize(Unknown Source) ~[?:?]
      	at org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext$DataObjectSerializerProxy.serialize(BindingCodecContext.java:121) ~[?:?]
      	at org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext.toNormalizedNode(BindingCodecContext.java:506) ~[?:?]
      	at org.opendaylight.mdsal.binding.dom.codec.spi.ForwardingBindingDOMCodecServices.toNormalizedNode(ForwardingBindingDOMCodecServices.java:66) ~[?:?]
      	at org.opendaylight.mdsal.binding.dom.codec.spi.ForwardingBindingDOMCodecServices.toNormalizedNode(ForwardingBindingDOMCodecServices.java:66) ~[?:?]
      	at org.opendaylight.mdsal.binding.dom.adapter.BindingDOMWriteTransactionAdapter.toNormalized(BindingDOMWriteTransactionAdapter.java:107) ~[?:?]
      	at org.opendaylight.mdsal.binding.dom.adapter.BindingDOMWriteTransactionAdapter.toNormalized(BindingDOMWriteTransactionAdapter.java:100) ~[?:?]
      	at org.opendaylight.mdsal.binding.dom.adapter.BindingDOMWriteTransactionAdapter.merge(BindingDOMWriteTransactionAdapter.java:50) ~[?:?]
      	at org.opendaylight.transportpce.common.device.DeviceTransaction.merge(DeviceTransaction.java:66) ~[?:?]
      	at org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl710.postEquipmentState(OpenRoadmInterfacesImpl710.java:225) ~[?:?]
      	at org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl.postEquipmentState(OpenRoadmInterfacesImpl.java:127) ~[?:?]

            rovarga Robert Varga
            gthouenon Gilles Thouenon
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: