[ 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 {code:java} ClientSession queueCreateSession = sessionFactory.createSession(user, password, false, true, true, false, 0);{code} 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 {code:java} if (closed || !clientProtocolManager.isAlive()) { session.close(); return null; }{code} 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: {code:java} queueID = createQueueWithRoutingTypeIfNecessaryAndGetID(queueCreateSession, queue, message.getAddressSimpleString(), message.getRoutingType());{code} 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: {code:java} session.createQueue(new QueueConfiguration(...));{code} 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(...)); > 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 > {code:java} > ClientSession queueCreateSession = sessionFactory.createSession(user, > password, false, true, true, false, 0);{code} > 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 > {code:java} > if (closed || !clientProtocolManager.isAlive()) { > session.close(); > return null; > }{code} > 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: > {code:java} > queueID = createQueueWithRoutingTypeIfNecessaryAndGetID(queueCreateSession, > queue, message.getAddressSimpleString(), message.getRoutingType());{code} > 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: > {code:java} > session.createQueue(new QueueConfiguration(...));{code} -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org For additional commands, e-mail: issues-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact