Description
Observed in MDSAL-423, when a leafref contains a function invocation:
leaf flavor {
type leafref {
path "deref(../../../ext-cpd/int-virtual-link-desc)/../desc-flavor/id";
}
}
we end up splitting the path, but not account for the call correctly, leading to:
java.lang.IllegalArgumentException: Parameter 'localName':'int-virtual-link-desc)' contains illegal character ')' at org.opendaylight.yangtools.yang.common.QName.checkLocalName (QName.java:101) at org.opendaylight.yangtools.yang.common.QName.create (QName.java:139) at org.opendaylight.yangtools.yang.common.QName.create (QName.java:165) at org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.stringPathPartToQName (SchemaContextUtil.java:596) at org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.lambda$resolveRelativeXPath$2 (SchemaContextUtil.java:674) at com.google.common.collect.Iterators$6.transform (Iterators.java:785) at com.google.common.collect.TransformedIterator.next (TransformedIterator.java:47) at com.google.common.collect.Iterators$ConcatenatedIterator.next (Iterators.java:1363) at com.google.common.collect.Iterables$6$1.next (Iterables.java:882) at com.google.common.collect.Iterables$6$1.next (Iterables.java:882) at com.google.common.collect.Iterables$6$1.next (Iterables.java:882) at org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findNodeIn (SchemaContextUtil.java:397) at org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findNodeIn (SchemaContextUtil.java:408) at org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findNodeIn (SchemaContextUtil.java:408) at org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findNodeInModule (SchemaContextUtil.java:362) at org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findNodeInSchemaContext (SchemaContextUtil.java:267) at org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findDataSchemaNodeForRelativeXPath (SchemaContextUtil.java:226) at org.opendaylight.mdsal.binding.yang.types.AbstractTypeProvider.provideTypeForLeafref (AbstractTypeProvider.java:521) at org.opendaylight.mdsal.binding.yang.types.AbstractTypeProvider.javaTypeForLeafrefOrIdentityRef (AbstractTypeProvider.java:300) at org.opendaylight.mdsal.binding.yang.types.AbstractTypeProvider.javaTypeForSchemaDefinitionType (AbstractTypeProvider.java:194)
Attachments
Issue Links
- is blocked by
-
YANGTOOLS-969 Integrate leafref path parser
-
- Resolved
-
- relates to
-
MDSAL-423 Failed to find leafref target
-
- Resolved
-
-
YANGTOOLS-1050 Leafref resolution breaks down on leafref involving deref()
-
- Resolved
-
-
YANGTOOLS-1049 Invalid path expressions are not reported correctly
-
- Resolved
-