[ https://issues.apache.org/jira/browse/ARTEMIS-4771?focusedWorklogId=919579&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-919579 ]
ASF GitHub Bot logged work on ARTEMIS-4771: ------------------------------------------- Author: ASF GitHub Bot Created on: 15/May/24 18:22 Start Date: 15/May/24 18:22 Worklog Time Spent: 10m Work Description: tabish121 commented on code in PR #4932: URL: https://github.com/apache/activemq-artemis/pull/4932#discussion_r1602074233 ########## artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/proton/AMQPLargeMessageWriter.java: ########## @@ -170,16 +170,26 @@ private void resume() { } private void tryDelivering() { + + final Delivery localDelivery = delivery; + final MessageReference localReference = reference; + final LargeBodyReader localBodyReader = largeBodyReader; + + if (localDelivery == null || localReference == null || localBodyReader == null) { + logger.debug("Write got closed before tryDelivering was called"); + return; + } Review Comment: That would make more sense as the closed indicator is the only volatile in the mix and would generally convey the state in a timely manner. Copying the other resources local is fine but doesn't pass a barrier so they still aren't the best indicator of closedness. Issue Time Tracking ------------------- Worklog Id: (was: 919579) Time Spent: 0.5h (was: 20m) > NPE between AMQPLargeMessageWriter::tryDelivering and resetClose > ---------------------------------------------------------------- > > Key: ARTEMIS-4771 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4771 > Project: ActiveMQ Artemis > Issue Type: Bug > Reporter: Clebert Suconic > Priority: Major > Time Spent: 0.5h > Remaining Estimate: 0h > > This is using RedHat's bits: > java.lang.NullPointerException: Cannot invoke > "org.apache.qpid.proton.engine.Delivery.getTag()" because "this.delivery" is > null > at > org.apache.activemq.artemis.protocol.amqp.proton.AMQPLargeMessageWriter.tryDelivering(AMQPLargeMessageWriter.java:174) > ~[artemis-amqp-protocol-2.33.0.redhat-00009.jar:2.33.0.redhat-00009] > at > io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173) > ~[netty-common-4.1.108.Final-redhat-00001.jar:4.1.108.Final-redhat-00001] > at > io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166) > [netty-common-4.1.108.Final-redhat-00001.jar:4.1.108.Final-redhat-00001] > at > io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) > [netty-common-4.1.108.Final-redhat-00001.jar:4.1.108.Final-redhat-00001] > at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:413) > [netty-transport-classes-epoll-4.1.108.Final-redhat-00001.jar:4.1.108.Final-redhat-00001] > at > io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) > [netty-common-4.1.108.Final-redhat-00001.jar:4.1.108.Final-redhat-00001] > at > io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) > [netty-common-4.1.108.Final-redhat-00001.jar:4.1.108.Final-redhat-00001] > at > org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) > [artemis-commons-2.33.0.redhat-00009.jar:2.33.0.redhat-00009] -- This message was sent by Atlassian Jira (v8.20.10#820010)