<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:02:08 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>[INFRAUTILS-51] SystemReadyListener onSystemBootReady() should allow throws Throwable</title>
                <link>https://jira.opendaylight.org/browse/INFRAUTILS-51</link>
                <project id="10129" key="INFRAUTILS">infrautils</project>
                    <description>&lt;p&gt;while code reviewing &lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=SridharG&quot; class=&quot;user-hover&quot; rel=&quot;SridharG&quot;&gt;SridharG&lt;/a&gt;&apos;s&#160;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/76325/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/76325/&lt;/a&gt;&#160;for exception handling correctness, I followed the trail from its&#160;MBeanUtils.constructJmxUrl() &quot;upwards&quot; to its caller, finding it&apos;s used in&#160;DiagStatusServiceMBeanImpl&apos;s&#160;SystemReadyListener&#160;onSystemBootReady() which currently looks like this:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;&lt;span class=&quot;code-keyword&quot;&gt;try&lt;/span&gt; {
    jmxConnector = MBeanUtils.startRMIConnectorServer(mbeanServer, host);
} &lt;span class=&quot;code-keyword&quot;&gt;catch&lt;/span&gt; (IOException e) {
    LOG.error(&lt;span class=&quot;code-quote&quot;&gt;&quot;unable to start jmx connector &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; host: {}&quot;&lt;/span&gt;, host, e);
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This is somewhat problematic because in the case of what c/76325 fixes, MBeanUtils.startRMIConnectorServer fails with a RuntimeException not an IOException.&lt;/p&gt;

&lt;p&gt;Everyone typically gets exception handling wrong. I think SystemReadyListener&#160;onSystemBootReady() is one of those cases where it would make sense to have it declare &quot;throws Throwable&quot; (or Exception, if anyone has any very strong preference that way). This would signal to any implementors of onSystemBootReady() that they can just propagate anything that went wrong, instead of catching and logging but swallowing. That way we can handle it correctly in SystemReadyImpl - by setting the system boot state to failure (because if a SystemReadyListener failed, then things are NOT fine, and we should not swallow that).&lt;/p&gt;

&lt;p&gt;SystemReadyImpl already catches RuntimeException from any SystemReadyListener onSystemBootReady, this change will just let it catch any Throwable/Exception, which IMHO is better for error handling overall.&lt;/p&gt;</description>
                <environment></environment>
        <key id="30786">INFRAUTILS-51</key>
            <summary>SystemReadyListener onSystemBootReady() should allow throws Throwable</summary>
                <type id="10100" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</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="vorburger">Michael Vorburger</assignee>
                                    <reporter username="vorburger">Michael Vorburger</reporter>
                        <labels>
                    </labels>
                <created>Fri, 21 Sep 2018 10:38:49 +0000</created>
                <updated>Wed, 10 Oct 2018 17:00:13 +0000</updated>
                            <resolved>Wed, 10 Oct 2018 17:00:13 +0000</resolved>
                                                    <fixVersion>Neon</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                        <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|i03j07:</customfieldvalue>

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