X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fbroker%2Fimpl%2FRoutedDOMRpcRoutingTableEntry.java;fp=opendaylight%2Fmd-sal%2Fsal-dom-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fbroker%2Fimpl%2FRoutedDOMRpcRoutingTableEntry.java;h=3d2eb974c03ae8244da33794f5b21c02b2bc4ca6;hp=e6df966f369a55e391d686646804e91891b584cb;hb=1b37a887301c6b9159ddb76492c4a3a820c0dfe8;hpb=0791cdd2ca719270a1b0c114bf863ba29d571ac0 diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/RoutedDOMRpcRoutingTableEntry.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/RoutedDOMRpcRoutingTableEntry.java index e6df966f36..3d2eb974c0 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/RoutedDOMRpcRoutingTableEntry.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/RoutedDOMRpcRoutingTableEntry.java @@ -52,11 +52,23 @@ final class RoutedDOMRpcRoutingTableEntry extends AbstractDOMRpcRoutingTableEntr final Object value = key.getValue(); if (value instanceof YangInstanceIdentifier) { final YangInstanceIdentifier iid = (YangInstanceIdentifier) value; - final List impls = getImplementations(iid); - if (impls != null) { - return impls.get(0).invokeRpc(DOMRpcIdentifier.create(getSchemaPath(), iid), input); + + // Find a DOMRpcImplementation for a specific iid + final List specificImpls = getImplementations(iid); + if (specificImpls != null) { + return specificImpls.get(0).invokeRpc(DOMRpcIdentifier.create(getSchemaPath(), iid), input); + } + + LOG.debug("No implementation for context {} found will now look for wildcard id", iid); + + // Find a DOMRpcImplementation for a wild card. Usually remote-rpc-connector would register an + // implementation this way + final List mayBeRemoteImpls = getImplementations(YangInstanceIdentifier.EMPTY); + + if(mayBeRemoteImpls != null){ + return mayBeRemoteImpls.get(0).invokeRpc(DOMRpcIdentifier.create(getSchemaPath(), iid), input); } - LOG.debug("No implementation for context {} found", iid); + } else { LOG.warn("Ignoring wrong context value {}", value); }