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%2FAbstractDOMRpcRoutingTableEntry.java;h=08c43845fc57bfdf7d72ad795f7c1054ecd45956;hp=09c4f4fe6d53afd4eb554a45c70100fa0fb3acb5;hb=0dcdc14a4ff38b39fed0d07658941a09a4c043fd;hpb=bfd413d87f82ee3ffed67a141a980805950a0f06 diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/AbstractDOMRpcRoutingTableEntry.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/AbstractDOMRpcRoutingTableEntry.java index 09c4f4fe6d..08c43845fc 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/AbstractDOMRpcRoutingTableEntry.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/AbstractDOMRpcRoutingTableEntry.java @@ -52,9 +52,15 @@ abstract class AbstractDOMRpcRoutingTableEntry { return impls.keySet(); } + /** + * + * @param implementation + * @param newRpcs List of new RPCs, must be mutable + * @return + */ final AbstractDOMRpcRoutingTableEntry add(final DOMRpcImplementation implementation, final List newRpcs) { final Builder> vb = ImmutableMap.builder(); - for (Entry> ve : impls.entrySet()) { + for (final Entry> ve : impls.entrySet()) { if (newRpcs.remove(ve.getKey())) { final ArrayList i = new ArrayList<>(ve.getValue().size() + 1); i.addAll(ve.getValue()); @@ -64,13 +70,18 @@ abstract class AbstractDOMRpcRoutingTableEntry { vb.put(ve); } } + for(final YangInstanceIdentifier ii : newRpcs) { + final ArrayList impl = new ArrayList<>(1); + impl.add(implementation); + vb.put(ii,impl); + } return newInstance(vb.build()); } final AbstractDOMRpcRoutingTableEntry remove(final DOMRpcImplementation implementation, final List removed) { final Builder> vb = ImmutableMap.builder(); - for (Entry> ve : impls.entrySet()) { + for (final Entry> ve : impls.entrySet()) { if (removed.remove(ve.getKey())) { final ArrayList i = new ArrayList<>(ve.getValue()); i.remove(implementation);