<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:10:59 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[MDSAL-796] DOMRpcService.registerImplementations() does not work with pre-existing entries</title>
                <link>https://jira.opendaylight.org/browse/MDSAL-796</link>
                <project id="10137" key="MDSAL">mdsal</project>
                    <description>&lt;p&gt;Downstream integration found this:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;2022-11-28T10:20:27,859 | ERROR | opendaylight-cluster-data-akka.actor.default-dispatcher-16 | OSGiClusterAdmin &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;| 107 - org.opendaylight.controller.sal-cluster-admin-impl - 7.0.0.SNAPSHOT | bundle org.opendaylight.controller.sal-cluster-admin-impl:7.0.0.SNAPSHOT (107)[org.opendaylight.controller.cluster.datastore.admin.OSGiClusterAdmin(62)] : Error during instantiation of the implementation object
java.lang.reflect.InvocationTargetException: null
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.inject.internal.ComponentConstructorImpl.newInstance(ComponentConstructorImpl.java:326) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:286) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:115) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:1002) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:975) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:785) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1274) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1225) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1232) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1152) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:959) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:895) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1184) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:116) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:123) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:961) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:937) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:874) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:141) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:262) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:500) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:929) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:915) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:133) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:984) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:752) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:674) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.apache.felix.scr.impl.manager.ComponentFactoryImpl.newInstance(ComponentFactoryImpl.java:132) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.controller.cluster.datastore.OSGiDistributedDataStore$DatastoreState.onSuccess(OSGiDistributedDataStore.java:93) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1138) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:49) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:48) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?]
Caused by: java.lang.IllegalArgumentException: Multiple entries with same key: (urn:opendaylight:params:xml:ns:yang:controller:entity-owners)get-entity=org.opendaylight.mdsal.dom.broker.GlobalDOMRpcRoutingTableEntry@2f695c72 and (urn:opendaylight:params:xml:ns:yang:controller:entity-owners)get-entity=org.opendaylight.mdsal.dom.broker.GlobalDOMRpcRoutingTableEntry@2f695c72
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at com.google.common.collect.ImmutableMap.conflictException(ImmutableMap.java:377) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at com.google.common.collect.ImmutableMap.checkNoConflict(ImmutableMap.java:371) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at com.google.common.collect.RegularImmutableMap.checkNoConflictInKeyBucket(RegularImmutableMap.java:241) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at com.google.common.collect.RegularImmutableMap.fromEntryArrayCheckingBucketOverflow(RegularImmutableMap.java:132) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at com.google.common.collect.RegularImmutableMap.fromEntryArray(RegularImmutableMap.java:94) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at com.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:573) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at com.google.common.collect.ImmutableMap$Builder.buildOrThrow(ImmutableMap.java:601) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at com.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:588) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.mdsal.dom.broker.AbstractDOMRoutingTable.addAll(AbstractDOMRoutingTable.java:121) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.mdsal.dom.broker.DOMRpcRouter$RpcProviderServiceFacade.registerRpcImplementations(DOMRpcRouter.java:534) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.mdsal.dom.spi.ForwardingDOMRpcProviderService.registerRpcImplementations(ForwardingDOMRpcProviderService.java:42) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.mdsal.binding.dom.adapter.BindingDOMRpcProviderServiceAdapter.register(BindingDOMRpcProviderServiceAdapter.java:127) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.mdsal.binding.dom.adapter.BindingDOMRpcProviderServiceAdapter.registerRpcImplementation(BindingDOMRpcProviderServiceAdapter.java:45) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.mdsal.binding.dom.adapter.osgi.OSGiRpcProviderService.registerRpcImplementation(OSGiRpcProviderService.java:39) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.controller.cluster.datastore.admin.OSGiClusterAdmin.&amp;lt;init&amp;gt;(OSGiClusterAdmin.java:37) ~[?:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;... 44 more
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The cause seems to lie with the bulk registration process exposed by &lt;a href=&quot;https://git.opendaylight.org/gerrit/c/mdsal/+/87754&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/c/mdsal/+/87754&lt;/a&gt; . If that ends up being the case, the fix needs to be backported to previous streams as well.&lt;/p&gt;</description>
                <environment></environment>
        <key id="36402">MDSAL-796</key>
            <summary>DOMRpcService.registerImplementations() does not work with pre-existing entries</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="1" iconUrl="https://jira.opendaylight.org/images/icons/priorities/blocker.svg">Highest</priority>
                        <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="rovarga">Robert Varga</assignee>
                                    <reporter username="rovarga">Robert Varga</reporter>
                        <labels>
                            <label>regression</label>
                    </labels>
                <created>Mon, 28 Nov 2022 10:21:08 +0000</created>
                <updated>Mon, 28 Nov 2022 18:24:39 +0000</updated>
                            <resolved>Mon, 28 Nov 2022 18:24:26 +0000</resolved>
                                    <version>7.0.0</version>
                    <version>8.0.0</version>
                    <version>9.0.0</version>
                    <version>10.0.0</version>
                    <version>7.0.14</version>
                    <version>11.0.0</version>
                    <version>10.0.3</version>
                    <version>9.0.6</version>
                    <version>8.0.16</version>
                                    <fixVersion>9.0.7</fixVersion>
                    <fixVersion>10.0.4</fixVersion>
                    <fixVersion>11.0.1</fixVersion>
                                    <component>DOM runtime</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="71706" author="rovarga" created="Mon, 28 Nov 2022 17:50:01 +0000"  >&lt;p&gt;Confirmed, the problem was both in addAll() and removeAll(). The fix needs to be propagated as far back as 9.0.7.&lt;/p&gt;</comment>
                            <comment id="71707" author="rovarga" created="Mon, 28 Nov 2022 17:54:25 +0000"  >&lt;p&gt;This is a regression only in 11.0.0, where we use this functionality for all binding.api.RpcService registrations.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="26908">MDSAL-86</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i043j3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>