Galkin Alexey created ARTEMIS-4734:
--------------------------------------
Summary: Null dereferencing in ReplicationManager.java
Key: ARTEMIS-4734
URL: https://issues.apache.org/jira/browse/ARTEMIS-4734
Project: ActiveMQ Artemis
Issue Type: Bug
Reporter: Galkin Alexey
repliToken can be 0.
In this code, the repliToken is initialized with the value returned by the
method ([line
464|https://github.com/apache/activemq-artemis/blob/main/artemis-server/src/main/java/org/apache/activemq/artemis/core/replication/ReplicationManager.java])
OperationContextImpl.getContext(ioExecutorFactory)
final OperationContext repliToken =
OperationContextImpl.getContext(ioExecutorFactory);
Inside this method, a call is made to the
OperationContextImpl.threadLocalContext.get()([line
61|https://github.com/apache/activemq-artemis/blob/main/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/OperationContextImpl.java])
method, which returns the value from the thread that was set earlier. If no
value was set in the stream, then token will be null.
OperationContext token = OperationContextImpl.threadLocalContext.get();
If ioExecutorFactory is null and there is no value set in the thread, then the
repliToken will remain null because the backing getContext() method also
returns null in this case.
So repliToken can be 0 if ioExecutorFactory is null and there is no value set
in the thread.
Found by Linux Verification Center (portal.linuxtesting.ru) with SVACE.
Author Alexey Galkin.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)