[YANGTOOLS-1381] Parser reactor does not support chained prerequisites Created: 12/Dec/21 Updated: 13/Dec/21 Resolved: 13/Dec/21 |
|
| Status: | Resolved |
| Project: | yangtools |
| Component/s: | parser |
| Affects Version/s: | None |
| Fix Version/s: | 8.0.0, 7.0.10 |
| Type: | Bug | 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 | ||
| Issue Links: |
|
||||||||
| Description |
|
If an inference action attempts to create another inference on the same statement (and the same stage), we end up throwing: Thread [main] (Suspended (exception ConcurrentModificationException)) HashMap$KeyIterator(HashMap$HashIterator).remove() line: 1525 AbstractMapBasedMultimap$WrappedCollection$WrappedIterator.remove() line: 468 SourceSpecificContext.tryToProgress(Collection<ModifierImpl>) line: 329 SourceSpecificContext.tryToCompletePhase(byte) line: 301 BuildGlobalContext.completePhaseActions() line: 364 BuildGlobalContext.executePhases() line: 199 BuildGlobalContext.buildEffective() line: 210 CrossSourceStatementReactor$BuildAction.buildEffective() line: 219 YT1338Test.testAddedLeaves() line: 18 This is because we are iterating over the values and the inference action adds a new one – a classic CME. |