From 04ce5456498852a65d03bfcbdd25d923b3f7a316 Mon Sep 17 00:00:00 2001 From: Michael Barker Date: Wed, 10 Jan 2024 10:11:42 +1300 Subject: [PATCH] [Java] Remove double read of volatile and reverse elements of condition. --- .../src/main/java/io/aeron/driver/PublicationImage.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/aeron-driver/src/main/java/io/aeron/driver/PublicationImage.java b/aeron-driver/src/main/java/io/aeron/driver/PublicationImage.java index 67b7f89dc6..522c9c12c4 100644 --- a/aeron-driver/src/main/java/io/aeron/driver/PublicationImage.java +++ b/aeron-driver/src/main/java/io/aeron/driver/PublicationImage.java @@ -696,8 +696,9 @@ int sendPendingStatusMessage(final long nowNs) int workCount = 0; final long changeNumber = endSmChange; final boolean hasSmTimedOut = (timeOfLastSmNs + smTimeoutNs) - nowNs < 0; + final Integer responseSessionId; - if (null != responseSessionId && hasSmTimedOut) + if (hasSmTimedOut && null != (responseSessionId = this.responseSessionId)) { channelEndpoint.sendResponseSetup(imageConnections, sessionId, streamId, responseSessionId); }