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

Enum with underscores in name encoded without underscores

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Medium
    • Resolution: Won't Do
    • 2.1.8, 3.0.4, 4.0.7
    • None
    • None
    • None

    Description

      Enum with a name which includes underscore is encoded as XML string without underscores. This issue has been reproduced with a notification containing leafref referencing leaf of enumeration type with an enum name containing underscores.

      Stack trace:

       WARN [Thread-1] (XMLStreamWriterUtils.java:92) - Provided node value RXEARLY did not have type BaseEnumerationType{path=AbsoluteSchemaPath{path=[(urn:o-ran:performance-management:1.0?revision=2019-02-04)performance-measurement-objects, (urn:o-ran:performance-management:1.0?revision=2019-02-04)rx-window-measurement-objects, (urn:o-ran:performance-management:1.0?revision=2019-02-04)measurement-object, (urn:o-ran:performance-management:1.0?revision=2019-02-04)enumeration]}, status=CURRENT, values=[EnumPairImpl{name=RX_ON_TIME, value=0}, EnumPairImpl{name=RX_EARLY, value=1}, EnumPairImpl{name=RX_LATE, value=2}, EnumPairImpl{name=RX_CORRUPT, value=3}, EnumPairImpl{name=RX_DUPL, value=4}, EnumPairImpl{name=RX_TOTAL, value=5}]} required by mapping. Using stream instead.
      java.lang.ClassCastException: class org.opendaylight.yang.gen.v1.urn.o.ran.performance.management._1._0.rev190204.performance.measurement.objects.RxWindowMeasurementObjects$MeasurementObject cannot be cast to class java.lang.String (org.opendaylight.yang.gen.v1.urn.o.ran.performance.management._1._0.rev190204.performance.measurement.objects.RxWindowMeasurementObjects$MeasurementObject is in unnamed module of loader 'app'; java.lang.String is in module java.base of loader 'bootstrap')
      	at org.opendaylight.yangtools.yang.data.impl.codec.EnumStringCodec.serializeImpl(EnumStringCodec.java:25)
      	at org.opendaylight.yangtools.concepts.AbstractCodec.serialize(AbstractCodec.java:34)
      	at org.opendaylight.yangtools.yang.data.codec.xml.XMLStreamWriterUtils.serialize(XMLStreamWriterUtils.java:90)
      	at org.opendaylight.yangtools.yang.data.codec.xml.XMLStreamWriterUtils.encodeValue(XMLStreamWriterUtils.java:78)
      	at org.opendaylight.yangtools.yang.data.codec.xml.XMLStreamWriterUtils.encodeValue(XMLStreamWriterUtils.java:57)
      	at org.opendaylight.yangtools.yang.data.codec.xml.SchemaAwareXMLStreamNormalizedNodeStreamWriter.encodeValue(SchemaAwareXMLStreamNormalizedNodeStreamWriter.java:53)
      	at org.opendaylight.yangtools.yang.data.codec.xml.SchemaAwareXMLStreamNormalizedNodeStreamWriter.encodeValue(SchemaAwareXMLStreamNormalizedNodeStreamWriter.java:38)
      	at org.opendaylight.yangtools.yang.data.codec.xml.XMLStreamNormalizedNodeStreamWriter.writeValue(XMLStreamNormalizedNodeStreamWriter.java:132)
      	at org.opendaylight.yangtools.yang.data.codec.xml.SchemaAwareXMLStreamNormalizedNodeStreamWriter.scalarValue(SchemaAwareXMLStreamNormalizedNodeStreamWriter.java:159)
      	at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter.wasProcessAsSimpleNode(NormalizedNodeWriter.java:147)
      	at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter.write(NormalizedNodeWriter.java:107)
      	at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter$OrderedNormalizedNodeWriter.writeMapEntryNode(NormalizedNodeWriter.java:277)
      	at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter.wasProcessedAsCompositeNode(NormalizedNodeWriter.java:214)
      	at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter.write(NormalizedNodeWriter.java:103)
      	at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter.writeChildren(NormalizedNodeWriter.java:190)
      	at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter.wasProcessedAsCompositeNode(NormalizedNodeWriter.java:244)
      	at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter.write(NormalizedNodeWriter.java:103)
      	at io.lighty.codecs.XmlNodeConverter.serializeRpc(XmlNodeConverter.java:127)
      	at io.lighty.netconf.device.requests.notification.NotificationOperation.sendMessage(NotificationOperation.java:79)
      	at io.lighty.netconf.device.requests.notification.NotificationPublishServiceImpl.publish(NotificationPublishServiceImpl.java:32)
      	at tech.pantheon.oran.ru.simulator.OranNotificationService.run(OranNotificationService.java:81)
      

      The set of used YANG models can be found at:

      https://wiki.onap.org/display/DW/O-RAN+Fronthaul+Specification+1.0

      Issue can be reproduced with notification: measurement-result-stats, which is defined in model:

      https://wiki.onap.org/download/attachments/64007500/o-ran-performance-management@2019-02-04.yang?api=v2

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            rovarga Robert Varga
            tjanciga Tomas Janciga
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: