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: