Uploaded image for project: 'yangtools'
  1. yangtools
  2. YANGTOOLS-846

Deserialization of mpls-label union (identityref + int) fails

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Medium Medium
    • 1.1.4, 2.0.2, 1.2.3
    • 1.2.1, 1.1.2, 2.0.1
    • codecs
    • None

       

      typedef mpls-label {
        type union {
          type mpls-label-special-purpose;
          type mpls-label-general-use;
        }
      }
      

       

      As defined in:

      https://git.opendaylight.org/gerrit/#/c/67814/3/model/ietf/ietf-routing-types/src/main/yang/ietf-routing-types%25402017-02-27.yang

       

      Data:

       

      {
        "static-lsp": [
          {
            "name": "static-lsp0",
            (...)
            "outgoing-label": 111
          }
        ]
      }
      

       

       

      Outcome:

      2018-02-05 08:21:56.087 CET [qtp628963688-20] DEBUG o.o.y.b.d.c.i.UnionValueOptionContext - Codec org.opendaylight.yangtools.binding.data.codec.impl.IdentityCodec@69393602 failed to deserialize input (urn:ietf:params:xml:ns:yang:ietf-mpls-static?revision=2017-03-10)111
      com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalArgumentException: Supplied QName (urn:ietf:params:xml:ns:yang:ietf-mpls-static?revision=2017-03-10)111 is not a valid identity
          at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2218) ~[guava-22.0.jar:na]
          at com.google.common.cache.LocalCache.get(LocalCache.java:4147) ~[guava-22.0.jar:na]
          at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4151) ~[guava-22.0.jar:na]
          at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5140) ~[guava-22.0.jar:na]
          at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:5146) ~[guava-22.0.jar:na]
          at org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext.getIdentityClass(BindingRuntimeContext.java:447) ~[mdsal-binding-generator-impl-0.11.2-SNAPSHOT.jar:na]
          at org.opendaylight.yangtools.binding.data.codec.impl.IdentityCodec.deserialize(IdentityCodec.java:27) ~[mdsal-binding-dom-codec-0.11.2-SNAPSHOT.jar:na]
          at org.opendaylight.yangtools.binding.data.codec.impl.IdentityCodec.deserialize(IdentityCodec.java:17) ~[mdsal-binding-dom-codec-0.11.2-SNAPSHOT.jar:na]
          at org.opendaylight.yangtools.binding.data.codec.impl.UnionValueOptionContext.deserializeUnion(UnionValueOptionContext.java:61) ~[mdsal-binding-dom-codec-0.11.2-SNAPSHOT.jar:na]
          at org.opendaylight.yangtools.binding.data.codec.impl.UnionTypeCodec.deserialize(UnionTypeCodec.java:108) [mdsal-binding-dom-codec-0.11.2-SNAPSHOT.jar:na]
          at org.opendaylight.yangtools.binding.data.codec.impl.LeafNodeCodecContext.deserializeObject(LeafNodeCodecContext.java:199) [mdsal-binding-dom-codec-0.11.2-SNAPSHOT.jar:na]
          at org.opendaylight.yangtools.binding.data.codec.impl.DataObjectCodecContext.getBindingChildValue(DataObjectCodecContext.java:324) [mdsal-binding-dom-codec-0.11.2-SNAPSHOT.jar:na]
          at org.opendaylight.yangtools.binding.data.codec.impl.LazyDataObject.getBindingData(LazyDataObject.java:148) [mdsal-binding-dom-codec-0.11.2-SNAPSHOT.jar:na]
          at org.opendaylight.yangtools.binding.data.codec.impl.LazyDataObject.invoke(LazyDataObject.java:71) [mdsal-binding-dom-codec-0.11.2-SNAPSHOT.jar:na]
          at com.sun.proxy.$Proxy111.getOutgoingLabel(Unknown Source) [na:na]
      (...)
          at io.fd.honeycomb.data.impl.ReadWriteTransaction.submit(ReadWriteTransaction.java:91) [data-impl-1.18.01.1-SNAPSHOT.jar:na]
          at org.opendaylight.netconf.sal.restconf.impl.BrokerFacade.putDataViaTransaction(BrokerFacade.java:1031) [sal-rest-connector-1.6.2-SNAPSHOT.jar:na]
          at org.opendaylight.netconf.sal.restconf.impl.BrokerFacade.commitConfigurationDataPut(BrokerFacade.java:245) [sal-rest-connector-1.6.2-SNAPSHOT.jar:na]
      (...)
      Caused by: java.lang.IllegalArgumentException: Supplied QName (urn:ietf:params:xml:ns:yang:ietf-mpls-static?revision=2017-03-10)111 is not a valid identity
          at com.google.common.base.Preconditions.checkArgument(Preconditions.java:203) ~[guava-22.0.jar:na]
          at org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext$1.load(BindingRuntimeContext.java:92) ~[mdsal-binding-generator-impl-0.11.2-SNAPSHOT.jar:na]
          at org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext$1.load(BindingRuntimeContext.java:88) ~[mdsal-binding-generator-impl-0.11.2-SNAPSHOT.jar:na]
      (...)
      2018-02-05 08:21:56.092 CET [qtp628963688-20] DEBUG o.o.y.b.d.c.i.UnionValueOptionContext - Codec org.opendaylight.yangtools.binding.data.codec.impl.IdentityCodec@69393602 failed to deserialize input (urn:ietf:params:xml:ns:yang:ietf-mpls-static?revision=2017-03-10)111
      com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalArgumentException: Supplied QName (urn:ietf:params:xml:ns:yang:ietf-mpls-static?revision=2017-03-10)111 is not a valid identity
          at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2218) ~[guava-22.0.jar:na]
          at com.google.common.cache.LocalCache.get(LocalCache.java:4147) ~[guava-22.0.jar:na]
          at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4151) ~[guava-22.0.jar:na]
          at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5140) ~[guava-22.0.jar:na]
          at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:5146) ~[guava-22.0.jar:na]
          at org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext.getIdentityClass(BindingRuntimeContext.java:447) ~[mdsal-binding-generator-impl-0.11.2-SNAPSHOT.jar:na]
          at org.opendaylight.yangtools.binding.data.codec.impl.IdentityCodec.deserialize(IdentityCodec.java:27) ~[mdsal-binding-dom-codec-0.11.2-SNAPSHOT.jar:na]
          at org.opendaylight.yangtools.binding.data.codec.impl.IdentityCodec.deserialize(IdentityCodec.java:17) ~[mdsal-binding-dom-codec-0.11.2-SNAPSHOT.jar:na]
          at org.opendaylight.yangtools.binding.data.codec.impl.UnionValueOptionContext.deserializeUnion(UnionValueOptionContext.java:61) ~[mdsal-binding-dom-codec-0.11.2-SNAPSHOT.jar:na]
          at org.opendaylight.yangtools.binding.data.codec.impl.UnionTypeCodec.deserialize(UnionTypeCodec.java:108) [mdsal-binding-dom-codec-0.11.2-SNAPSHOT.jar:na]
          at org.opendaylight.yangtools.binding.data.codec.impl.LeafNodeCodecContext.deserializeObject(LeafNodeCodecContext.java:199) [mdsal-binding-dom-codec-0.11.2-SNAPSHOT.jar:na]
          at org.opendaylight.yangtools.binding.data.codec.impl.DataObjectCodecContext.getBindingChildValue(DataObjectCodecContext.java:324) [mdsal-binding-dom-codec-0.11.2-SNAPSHOT.jar:na]
          at org.opendaylight.yangtools.binding.data.codec.impl.LazyDataObject.getBindingData(LazyDataObject.java:148) [mdsal-binding-dom-codec-0.11.2-SNAPSHOT.jar:na]
          at org.opendaylight.yangtools.binding.data.codec.impl.LazyDataObject.bindingToString(LazyDataObject.java:205) [mdsal-binding-dom-codec-0.11.2-SNAPSHOT.jar:na]
          at org.opendaylight.yangtools.binding.data.codec.impl.LazyDataObject.invoke(LazyDataObject.java:65) [mdsal-binding-dom-codec-0.11.2-SNAPSHOT.jar:na]
      (...)

       

      Full log included

       

            rovarga Robert Varga
            mgradzki Marek Gradzki
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: