[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:
Blocks
blocks YANGTOOLS-1338 Generate ietf-restconf operations lea... Resolved

 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.


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