You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Justin Bertram (Jira)" <ji...@apache.org> on 2024/06/19 16:05:00 UTC
[jira] [Updated] (ARTEMIS-4805) Null dereferencing in ScaleDownHandler.java
[ https://issues.apache.org/jira/browse/ARTEMIS-4805?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Justin Bertram updated ARTEMIS-4805:
------------------------------------
Description:
In [line 333|https://github.com/apache/activemq-artemis/blob/main/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ScaleDownHandler.java] in file ScaleDownHandler.java variable *queueCreateSession* is initialized
ClientSession queueCreateSession = sessionFactory.createSession(user, password, false, true, true, false, 0);
In [line 851|https://github.com/apache/activemq-artemis/blob/main/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ClientSessionFactoryImpl.java] in ClientSessionFactoryImp.java, the code synchronizes with the sessions collection and checks whether the current session is closed or whether the client protocol manager is down. If the closed session or inactive client protocol manager condition is met, the session is closed and null is returned
if (closed || !clientProtocolManager.isAlive())
{ session.close(); return null; }
The *queueCreateSession* variable could potentially be null
In [line 357|https://github.com/apache/activemq-artemis/blob/main/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ScaleDownHandler.java] in file ScaleDownHandler.java variable *queueCreateSession* is passed to the function createQueueWithRoutingTypeIfNecessaryAndGetID as the first argument
queueID = createQueueWithRoutingTypeIfNecessaryAndGetID(queueCreateSession, queue, message.getAddressSimpleString(), message.getRoutingType());
In [line 450|https://github.com/apache/activemq-artemis/blob/main/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ScaleDownHandler.java] in file ScaleDownHandler.java potential null dereference occurs
session.createQueue(new QueueConfiguration(...));
was:
In [line 333|https://github.com/apache/activemq-artemis/blob/main/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ScaleDownHandler.java] in file ScaleDownHandler.java variable *queueCreateSession* is initialized
ClientSession queueCreateSession = sessionFactory.createSession(user, password, false, true, true, false, 0);
In [line 851|https://github.com/apache/activemq-artemis/blob/main/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ClientSessionFactoryImpl.java] in ClientSessionFactoryImp.java, the code synchronizes with the sessions collection and checks whether the current session is closed or whether the client protocol manager is down. If the closed session or inactive client protocol manager condition is met, the session is closed and null is returned
if (closed || !clientProtocolManager.isAlive())
{ session.close(); return null; }
The *queueCreateSession* variable could potentially be null
In [line 357|https://github.com/apache/activemq-artemis/blob/main/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ScaleDownHandler.java] in file ScaleDownHandler.java variable *queueCreateSession* is passed to the function createQueueWithRoutingTypeIfNecessaryAndGetID as the first argument
queueID = createQueueWithRoutingTypeIfNecessaryAndGetID(queueCreateSession, queue, message.getAddressSimpleString(), message.getRoutingType());
In [line 450|https://github.com/apache/activemq-artemis/blob/main/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ScaleDownHandler.java] in file ScaleDownHandler.java potential null dereference occurs
session.createQueue(new QueueConfiguration(...));
Found by Linux Verification Center (portal.linuxtesting.ru) with SVACE.
Author Alexey Galkin.
> Null dereferencing in ScaleDownHandler.java
> -------------------------------------------
>
> Key: ARTEMIS-4805
> URL: https://issues.apache.org/jira/browse/ARTEMIS-4805
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Reporter: Galkin Alexey
> Priority: Major
>
> In [line 333|https://github.com/apache/activemq-artemis/blob/main/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ScaleDownHandler.java] in file ScaleDownHandler.java variable *queueCreateSession* is initialized
>
> ClientSession queueCreateSession = sessionFactory.createSession(user, password, false, true, true, false, 0);
>
> In [line 851|https://github.com/apache/activemq-artemis/blob/main/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ClientSessionFactoryImpl.java] in ClientSessionFactoryImp.java, the code synchronizes with the sessions collection and checks whether the current session is closed or whether the client protocol manager is down. If the closed session or inactive client protocol manager condition is met, the session is closed and null is returned
>
> if (closed || !clientProtocolManager.isAlive())
> { session.close(); return null; }
>
> The *queueCreateSession* variable could potentially be null
> In [line 357|https://github.com/apache/activemq-artemis/blob/main/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ScaleDownHandler.java] in file ScaleDownHandler.java variable *queueCreateSession* is passed to the function createQueueWithRoutingTypeIfNecessaryAndGetID as the first argument
>
> queueID = createQueueWithRoutingTypeIfNecessaryAndGetID(queueCreateSession, queue, message.getAddressSimpleString(), message.getRoutingType());
>
> In [line 450|https://github.com/apache/activemq-artemis/blob/main/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ScaleDownHandler.java] in file ScaleDownHandler.java potential null dereference occurs
>
> session.createQueue(new QueueConfiguration(...));
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@activemq.apache.org
For additional commands, e-mail: issues-help@activemq.apache.org
For further information, visit: https://activemq.apache.org/contact