You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2021/02/12 02:54:00 UTC
[jira] [Commented] (ARTEMIS-2931) Potential null pointer access at
several places
[ https://issues.apache.org/jira/browse/ARTEMIS-2931?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17283482#comment-17283482 ]
ASF subversion and git services commented on ARTEMIS-2931:
----------------------------------------------------------
Commit a75dce9577cc4a2fa4ff10fcc7f4e0ab4ee8242e in activemq-artemis's branch refs/heads/master from Petr Kužel
[ https://gitbox.apache.org/repos/asf?p=activemq-artemis.git;h=a75dce9 ]
ARTEMIS-2931: Resolving potential NPEs detected by eclipse
WARNING: the eclipse static analyser is pretty limited and it cannot cope with cases like: correlated variables, exception paths, .... 70% of eclipse warnings on artemis codebase is a false alarm.
Anyway some variable correlations can be eliminated and code becomes more readable for humans too.
For "never-throws", the assumption is made explicit. If you disagree with the reverse-engineered assumption then it is likely an indication of a true potential NPE.
Last but not least, copy&paste is a common source of bugs. I suspect eclipse indirectly detected one such case.
Hope it helps
> 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
> Time Spent: 2.5h
> Remaining Estimate: 0h
>
> 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)