[YANGTOOLS-803] if-feature statements not correctly processed in refine Created: 02/Aug/17 Updated: 10/Apr/22 Resolved: 13/Aug/17 |
|
| Status: | Resolved |
| Project: | yangtools |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | ||
| Reporter: | Peter Verthez | Assignee: | Peter Kajsa |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Operating System: All |
||
| Attachments: |
|
| External issue ID: | 8922 |
| Description |
|
We have in one of the models of BBF the following case (see the attached model, which is similar but smaller): augment "/if:interfaces-state/if:interface" { uses bbf-avail:availability { } The "availability" targeted by the refine is a container in the "bbf-avail:availability" grouping, which is marked by "if-feature availability". Now, if the "availability" feature is not present, and so the "availability" container in the "bbf-avail:availability" is not present, the above refine fails with the following error (the error is not present when the feature is present): Caused by: java.lang.IllegalArgumentException: Refine target node Relative {path=[(http://www.example.com/itf-availability?revision=2017-05-05)availability]} not found. At itf-availability:27:6 However, the refine is also conditional under the same feature (if-feature on the surrounding augment), so this error looks incorrect to us. |
| Comments |
| Comment by Peter Verthez [ 02/Aug/17 ] |
|
Attachment refine.zip has been added with description: Example model showing the bug |
| Comment by Peter Kajsa [ 09/Aug/17 ] |