[YANGTOOLS-1550] Improve ImmutableOffsetMapTemplate error reporting Created: 28/Nov/23  Updated: 29/Nov/23  Resolved: 29/Nov/23

Status: Resolved
Project: yangtools
Component/s: common
Affects Version/s: None
Fix Version/s: 12.0.0, 11.0.5, 10.0.13

Type: Improvement Priority: Medium
Reporter: Robert Varga Assignee: Robert Varga
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

We have the following splat:

java.lang.IllegalArgumentException
	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:129)
	at org.opendaylight.yangtools.util.ImmutableOffsetMapTemplate.instantiateTransformed(ImmutableOffsetMapTemplate.java:103)
	at org.opendaylight.yangtools.util.ImmutableOffsetMapTemplate$Ordered.instantiateTransformed(ImmutableOffsetMapTemplate.java:34)
	at org.opendaylight.yangtools.yang.data.util.ListEntryNodeDataWithSchema$Keyed.write(ListEntryNodeDataWithSchema.java:62)
	at org.opendaylight.yangtools.yang.data.util.CompositeNodeDataWithSchema.write(CompositeNodeDataWithSchema.java:223)
	at org.opendaylight.yangtools.yang.data.util.ListNodeDataWithSchema.write(ListNodeDataWithSchema.java:39)
	at org.opendaylight.yangtools.yang.data.util.CompositeNodeDataWithSchema.write(CompositeNodeDataWithSchema.java:223)
	at org.opendaylight.yangtools.yang.data.util.AbstractNodeDataWithSchema.write(AbstractNodeDataWithSchema.java:99)
	at org.opendaylight.yangtools.yang.data.codec.gson.JsonParserStream.parse(JsonParserStream.java:192)
	at org.opendaylight.restconf.nb.rfc8040.databind.JsonResourceBody.streamTo(JsonResourceBody.java:34)
	at org.opendaylight.restconf.nb.rfc8040.databind.ResourceBody.toNormalizedNode(ResourceBody.java:64)
	at org.opendaylight.restconf.nb.rfc8040.databind.AbstractResourceBodyTest.parse(AbstractResourceBodyTest.java:86)
	at org.opendaylight.restconf.nb.rfc8040.databind.JsonResourceBodyTest.testMissingKeys(JsonResourceBodyTest.java:109)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

This is quite ugly, as we have no message. Audit ImmutableOffsetMapTemplate and make sure we use descriptive exceptions.


Generated at Wed Feb 07 20:56:28 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.