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

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

    XMLWordPrintable

Details

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

    Description

       

      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

       

      Attachments

        Issue Links

          # Subject Branch Project Status CR V

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: