You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Petr Kuzel (Jira)" <ji...@apache.org> on 2020/10/05 19:20:00 UTC

[jira] [Reopened] (ARTEMIS-2931) Potential null pointer access at several places

     [ https://issues.apache.org/jira/browse/ARTEMIS-2931?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Petr Kuzel reopened ARTEMIS-2931:
---------------------------------

In fact, what about two concurrent threads invoking setChannel(), one with null and another with not null argument, please? Given there is no synchronization, the outcome depends on timing, so random NPE, no?

>  Potential null pointer access at several places
> ------------------------------------------------
>
>                 Key: ARTEMIS-2931
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2931
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker
>            Reporter: Petr Kuzel
>            Priority: Major
>
> Open the artemis-server project in Eclipse. Static analysis reports numerous Potential null pointer access. Looking at an example, the static analyzer is correct.
> ReplicationEndpoint:
> {code:java}
>    public void setChannel(final Channel channel) {
>       this.channel = channel;
>       if (channel == null) {
>          supportResponseBatching = false;
>       } else {
>          try {
>             final CoreRemotingConnection connection = channel.getConnection();
>             if (connection != null) {
>                this.supportResponseBatching = connection.getTransportConnection() instanceof NettyConnection;
>             } else {
>                this.supportResponseBatching = false;
>             }
>          } catch (Throwable t) {
>             logger.warn("Error while checking the channel connection", t);
>             this.supportResponseBatching = false;
>          }
>       }      if (this.channel != null && outgoingInterceptors != null) {
>          if (channel.getConnection() instanceof RemotingConnectionImpl)  { // NPE risk
> {code}
> line 392 the channel can be null.
> line 409 for unknown reason assumes the channel is never null.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)