[
https://issues.apache.org/jira/browse/ARTEMIS-4734?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17839801#comment-17839801
]
Justin Bertram commented on ARTEMIS-4734:
-----------------------------------------
bq. repliToken can be 0.
This doesn't make sense. Do you mean "{{repliToken}} can be {{null}}"?
> 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
> Priority: Major
>
> 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)