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

InMemoryDataTree does not support anyxml/anydata node storage

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Medium Medium
    • 4.0.9, 5.0.2, 3.0.12
    • None
    • data-impl
    • None

      Attempting to load RFC8639 models and storing choice node in subscriptions results in a failure instantiate the choice strategy node:

       TRACE [pool-11-thread-1] (DataNodeContainerModificationStrategy.java:82) - Failed to instantiate child (urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)target in container schema EnforcingMandatory{support=NormalizedNodeContainerSupport{requiredClass=interface org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode}, verifyChildren=false, schema=list subscription} children [org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf.EmptyLeafEffectiveStatement@49809829, org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf.RegularLeafEffectiveStatement@6f343628, org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf.RegularLeafEffectiveStatement@2f5449b1, org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf.RegularLeafEffectiveStatement@2de8b677, org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf.RegularLeafEffectiveStatement@60642233, org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf.RegularLeafEffectiveStatement@2e2fcd61, org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf.RegularLeafEffectiveStatement@23bb10d4, ChoiceEffectiveStatementImpl[qname=(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)target], org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf.RegularLeafEffectiveStatement@59f6f6ed, ChoiceEffectiveStatementImpl[qname=(urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications?revision=2019-09-09)notification-message-origin], org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf.EmptyLeafEffectiveStatement@513db4f4, container receivers]
      java.lang.IllegalArgumentException: Not supported schema node type for class org.opendaylight.yangtools.yang.parser.rfc7950.stmt.anydata.RegularAnydataEffectiveStatement
              at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.from(SchemaAwareApplyOperation.java:62)
              at org.opendaylight.yangtools.yang.data.impl.schema.tree.ChoiceModificationStrategy.<init>(ChoiceModificationStrategy.java:61)
              at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.from(SchemaAwareApplyOperation.java:55)
              at org.opendaylight.yangtools.yang.data.impl.schema.tree.ChoiceModificationStrategy.<init>(ChoiceModificationStrategy.java:61)
              at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.from(SchemaAwareApplyOperation.java:55)
              at org.opendaylight.yangtools.yang.data.impl.schema.tree.ChoiceModificationStrategy.<init>(ChoiceModificationStrategy.java:61)
              at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.from(SchemaAwareApplyOperation.java:55)
              at org.opendaylight.yangtools.yang.data.impl.schema.tree.DataNodeContainerModificationStrategy.resolveChild(DataNodeContainerModificationStrategy.java:80)
              at org.opendaylight.yangtools.yang.data.impl.schema.tree.DataNodeContainerModificationStrategy.getChild(DataNodeContainerModificationStrategy.java:60)
              at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.recursivelyVerifyStructure(AbstractNodeContainerModificationStrategy.java:159)
              at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.recursivelyVerifyStructure(AbstractNodeContainerModificationStrategy.java:166)
              at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.recursivelyVerifyStructure(AbstractNodeContainerModificationStrategy.java:166)
              at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.mergeIntoModifiedNode(AbstractNodeContainerModificationStrategy.java:278)
              at org.opendaylight.yangtools.yang.data.impl.schema.tree.OperationWithModification.merge(OperationWithModification.java:47)
              at org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeModification.merge(InMemoryDataTreeModification.java:102)
              at org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction.merge(SnapshotBackedWriteTransaction.java:92)
              at org.opendaylight.controller.cluster.datastore.modification.MergeModification.apply(MergeModification.java:43)
              at org.opendaylight.controller.cluster.datastore.LocalTransactionContext.executeModification(LocalTransactionContext.java:56)
              at org.opendaylight.controller.cluster.datastore.TransactionProxy$2.invoke(TransactionProxy.java:164)
              at org.opendaylight.controller.cluster.datastore.TransactionContextWrapper.maybeExecuteTransactionOperation(TransactionContextWrapper.java:147)
              at org.opendaylight.controller.cluster.datastore.TransactionProxy.executeModification(TransactionProxy.java:161)
              at org.opendaylight.controller.cluster.datastore.TransactionProxy.merge(TransactionProxy.java:146)
              at org.opendaylight.controller.cluster.databroker.AbstractDOMBrokerWriteTransaction.merge(AbstractDOMBrokerWriteTransaction.java:102)
      

      The problem here is that SchemaAwareApplyOperation does not handle the case of anydata/anyxml being handed down to it.

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

              Created:
              Updated:
              Resolved: