<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:32:21 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>[OPNFLWPLUG-393] NullPointerException in .ConnectionConductorImpl.updatePort()</title>
                <link>https://jira.opendaylight.org/browse/OPNFLWPLUG-393</link>
                <project id="10155" key="OPNFLWPLUG">OpenFlowPlugin</project>
                    <description>&lt;p&gt;Hello.&lt;/p&gt;

&lt;p&gt;I see the next issue during ODL tests: when multiple devices (~ 120 devices) are connecting to ODL controller on ODL start, the following issue is thrown:&lt;/p&gt;

&lt;p&gt;    2015-04-01 18:32:26,259 | WARN  | entLoopGroup-6-2 | DefaultChannelPipeline           | 116 - io.netty.common - 4.0.26.Final | An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.&lt;br/&gt;
java.lang.NullPointerException&lt;br/&gt;
         at&lt;br/&gt;
org.opendaylight.openflowplugin.openflow.md.core.ConnectionConductorImpl.updatePort(ConnectionConductorImpl.java:298)&lt;span class=&quot;error&quot;&gt;&amp;#91;176:org.opendaylight.openflowplugin:0.1.1000.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
org.opendaylight.openflowplugin.openflow.md.core.ConnectionConductorImpl.processPortStatusMsg(ConnectionConductorImpl.java:283)&lt;span class=&quot;error&quot;&gt;&amp;#91;176:org.opendaylight.openflowplugin:0.1.1000.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
org.opendaylight.openflowplugin.openflow.md.core.ConnectionConductorImpl.onPortStatusMessage(ConnectionConductorImpl.java:275)&lt;span class=&quot;error&quot;&gt;&amp;#91;176:org.opendaylight.openflowplugin:0.1.1000.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
org.opendaylight.openflowjava.protocol.impl.core.connection.ConnectionAdapterImpl.consume(ConnectionAdapterImpl.java:303)&lt;span class=&quot;error&quot;&gt;&amp;#91;174:org.opendaylight.openflowjava.openflow-protocol-impl:0.6.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
org.opendaylight.openflowjava.protocol.impl.core.DelegatingInboundHandler.channelRead(DelegatingInboundHandler.java:46)&lt;span class=&quot;error&quot;&gt;&amp;#91;174:org.opendaylight.openflowjava.openflow-protocol-impl:0.6.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)&lt;span class=&quot;error&quot;&gt;&amp;#91;115:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)&lt;span class=&quot;error&quot;&gt;&amp;#91;115:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)&lt;span class=&quot;error&quot;&gt;&amp;#91;141:io.netty.codec:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)&lt;span class=&quot;error&quot;&gt;&amp;#91;115:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)&lt;span class=&quot;error&quot;&gt;&amp;#91;115:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:242)&lt;span class=&quot;error&quot;&gt;&amp;#91;141:io.netty.codec:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)&lt;span class=&quot;error&quot;&gt;&amp;#91;115:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)&lt;span class=&quot;error&quot;&gt;&amp;#91;115:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:242)&lt;span class=&quot;error&quot;&gt;&amp;#91;141:io.netty.codec:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)&lt;span class=&quot;error&quot;&gt;&amp;#91;115:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)&lt;span class=&quot;error&quot;&gt;&amp;#91;115:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.handler.timeout.ReadTimeoutHandler.channelRead(ReadTimeoutHandler.java:150)&lt;span class=&quot;error&quot;&gt;&amp;#91;142:io.netty.handler:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
org.opendaylight.openflowjava.protocol.impl.core.IdleHandler.channelRead(IdleHandler.java:39)&lt;span class=&quot;error&quot;&gt;&amp;#91;174:org.opendaylight.openflowjava.openflow-protocol-impl:0.6.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)&lt;span class=&quot;error&quot;&gt;&amp;#91;115:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)&lt;span class=&quot;error&quot;&gt;&amp;#91;115:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)&lt;span class=&quot;error&quot;&gt;&amp;#91;115:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)&lt;span class=&quot;error&quot;&gt;&amp;#91;115:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)&lt;span class=&quot;error&quot;&gt;&amp;#91;115:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:847)&lt;span class=&quot;error&quot;&gt;&amp;#91;115:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)&lt;span class=&quot;error&quot;&gt;&amp;#91;115:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)&lt;span class=&quot;error&quot;&gt;&amp;#91;115:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)&lt;span class=&quot;error&quot;&gt;&amp;#91;115:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)&lt;span class=&quot;error&quot;&gt;&amp;#91;115:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:349)&lt;span class=&quot;error&quot;&gt;&amp;#91;115:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)&lt;span class=&quot;error&quot;&gt;&amp;#91;116:io.netty.common:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at&lt;br/&gt;
io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)&lt;span class=&quot;error&quot;&gt;&amp;#91;116:io.netty.common:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
         at java.lang.Thread.run(Thread.java:724)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.7.0_25&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;The issue is reproducible on Helium and Lithium OpenFlowPlugin versions and caused by racing conditions in ConnectionConductorImpl.&lt;br/&gt;
The sessionContext member is not set yet when onPortStatusMessage is called. As result, this.getSessionContext() in method ConnetionConductorImpl.updatePort() returns null:&lt;/p&gt;

&lt;p&gt;297:        } else &lt;/p&gt;
{
298:            this.getSessionContext().getPhysicalPorts().put(portNumber, msg);
299:            this.getSessionContext().getPortsBandwidth()
300:                    .put(portNumber, portBandwidth);
301:        }</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="27661">OPNFLWPLUG-393</key>
            <summary>NullPointerException in .ConnectionConductorImpl.updatePort()</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="10002">Duplicate</resolution>
                                        <assignee username="michal.rehak">Michal Rehak</assignee>
                                    <reporter username="igork@elbrys.com">Igor Kondrakhin</reporter>
                        <labels>
                    </labels>
                <created>Thu, 2 Apr 2015 13:36:24 +0000</created>
                <updated>Mon, 27 Sep 2021 09:01:27 +0000</updated>
                            <resolved>Fri, 26 Jun 2015 12:21:53 +0000</resolved>
                                                                    <component>General</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="56672" author="abhijit2511" created="Mon, 13 Apr 2015 16:21:31 +0000"  >&lt;p&gt;Can be done after M5.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10002">
                    <name>Duplicate</name>
                                            <outwardlinks description="duplicates">
                                        <issuelink>
            <issuekey id="27771">OPNFLWPLUG-503</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_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2941</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=2941]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10204" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>ODL SR Target Milestone</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10327"><![CDATA[Lithium-1]]></customfieldvalue>

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

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