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

Reactor may fail if listeners fire recursively

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Medium Medium
    • 4.0.14, 6.0.1, 5.0.8
    • None
    • parser
    • None

      When trying out some deferral tricks, we have come across this exception:

      Caused by: java.lang.NullPointerException
       at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.SimpleNamespaceContext.addTo(SimpleNamespaceContext.java:50)
       at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.NamespaceStorageSupport.addToNamespace(NamespaceStorageSupport.java:69)
       at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.addToNs(StatementContextBase.java:349)
       at org.opendaylight.yangtools.yang.parser.rfc7950/org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseSchemaTreeStatementSupport.onStatementAdded(BaseSchemaTreeStatementSupport.java:37)
       at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementDefinitionContext.onStatementAdded(StatementDefinitionContext.java:68)
       at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.childCopyOf(StatementContextBase.java:904)
       at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.childCopyOf(StatementContextBase.java:868)
       at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.copyAsChildOf(StatementContextBase.java:853)
       at org.opendaylight.yangtools.yang.parser.rfc7950/org.opendaylight.yangtools.yang.parser.rfc7950.stmt.uses.UsesStatementSupport.copyFromSourceToTarget(UsesStatementSupport.java:212)
       at org.opendaylight.yangtools.yang.parser.rfc7950/org.opendaylight.yangtools.yang.parser.rfc7950.stmt.uses.UsesStatementSupport$1.apply(UsesStatementSupport.java:112)
       at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl.applyAction(ModifierImpl.java:91)
       at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl.tryApply(ModifierImpl.java:150)
       at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext.tryToProgress(SourceSpecificContext.java:310)
       at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext.tryToCompletePhase(SourceSpecificContext.java:284)
       at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.completePhaseActions(BuildGlobalContext.java:390)
       ... 33 more

       this looks like a classic 'field moved' case, we should be re-validating if the field is still non-null.

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

              Created:
              Updated:
              Resolved: