<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:55:03 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>[CONTROLLER-1247] More graceful handling of nulls in Lists</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1247</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;Recently encountered a somewhat cryptic exception from the MD-SAL that turned out to be rooted in having null values in a List.&lt;/p&gt;

&lt;p&gt;It would be nice if either:&lt;/p&gt;

&lt;p&gt;a)  We threw the NPE with a clear error message at .build() time&lt;br/&gt;
or&lt;br/&gt;
b)  We threw a more descriptive exception when we encounter nulls in lists &lt;br/&gt;
in the codecs&lt;br/&gt;
or&lt;br/&gt;
c)  Both&lt;/p&gt;

&lt;p&gt;The exception encountered was this:&lt;/p&gt;

&lt;p&gt;java.lang.NullPointerException&lt;br/&gt;
	at org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow$StreamWriter.serialize(DataObjectSerializerPrototype.java)&lt;span class=&quot;error&quot;&gt;&amp;#91;264:org.opendaylight.openflowplugin.model.flow-service:0.1.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table$StreamWriter.serialize(DataObjectSerializerPrototype.java)&lt;span class=&quot;error&quot;&gt;&amp;#91;264:org.opendaylight.openflowplugin.model.flow-service:0.1.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry$DataObjectSerializerProxy.serialize(BindingNormalizedNodeCodecRegistry.java:294)&lt;span class=&quot;error&quot;&gt;&amp;#91;181:org.opendaylight.yangtools.binding-data-codec:0.7.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry.toNormalizedNode(BindingNormalizedNodeCodecRegistry.java:105)&lt;span class=&quot;error&quot;&gt;&amp;#91;181:org.opendaylight.yangtools.binding-data-codec:0.7.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toNormalizedNode(BindingToNormalizedNodeCodec.java:75)&lt;span class=&quot;error&quot;&gt;&amp;#91;232:org.opendaylight.controller.sal-binding-broker-impl:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.md.sal.binding.impl.AbstractWriteTransaction.put(AbstractWriteTransaction.java:42)&lt;span class=&quot;error&quot;&gt;&amp;#91;232:org.opendaylight.controller.sal-binding-broker-impl:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.groupbasedpolicy.renderer.ofoverlay.PolicyManager$FlowMap.commitToDataStore(PolicyManager.java:253)&lt;span class=&quot;error&quot;&gt;&amp;#91;283:org.opendaylight.groupbasedpolicy.ofoverlay-renderer:0.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.groupbasedpolicy.renderer.ofoverlay.PolicyManager$FlowUpdateTask.run(PolicyManager.java:335)&lt;span class=&quot;error&quot;&gt;&amp;#91;283:org.opendaylight.groupbasedpolicy.ofoverlay-renderer:0.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.groupbasedpolicy.util.SingletonTask$SingletonTaskWorker.run(SingletonTask.java:60)&lt;span class=&quot;error&quot;&gt;&amp;#91;259:org.opendaylight.groupbasedpolicy:0.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.7.0_72&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.7.0_72&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.7.0_72&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.7.0_72&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.7.0_72&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.7.0_72&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at java.lang.Thread.run(Thread.java:745)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.7.0_72&amp;#93;&lt;/span&gt;&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="25801">CONTROLLER-1247</key>
            <summary>More graceful handling of nulls in Lists</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <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="10001">Won&apos;t Do</resolution>
                                        <assignee username="tony.tkacik@gmail.com">Tony Tkacik</assignee>
                                    <reporter username="hagbard">Ed Warnicke</reporter>
                        <labels>
                    </labels>
                <created>Sun, 12 Apr 2015 18:04:45 +0000</created>
                <updated>Tue, 25 Jul 2023 08:23:59 +0000</updated>
                            <resolved>Tue, 9 Jun 2015 16:35:20 +0000</resolved>
                                                                    <component>mdsal</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="50420" author="tony.tkacik@gmail.com" created="Mon, 13 Apr 2015 11:49:06 +0000"  >&lt;p&gt;This seems builder was supplied with List (implementation) which allowed null values.&lt;/p&gt;</comment>
                            <comment id="50421" author="rovarga" created="Mon, 1 Jun 2015 12:34:08 +0000"  >&lt;p&gt;Checking for nulls in collection will have a huge performance impact.&lt;/p&gt;</comment>
                    </comments>
                    <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_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2979</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=2979]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i02pe7:</customfieldvalue>

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