Uploaded image for project: 'yangtools'
  1. yangtools
  2. YANGTOOLS-1381

Parser reactor does not support chained prerequisites

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Medium Medium
    • 8.0.0, 7.0.10
    • None
    • parser
    • None

      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.

            rovarga Robert Varga
            rovarga Robert Varga
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: