This is an automated email from the ASF dual-hosted git repository.
markt-asf pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/main by this push:
new a33a365ac1 Review "Always de-register upgraded connection
statistics..."
a33a365ac1 is described below
commit a33a365ac109650221748bb72b76b417642253cc
Author: Mark Thomas <[email protected]>
AuthorDate: Mon Nov 2 11:41:07 2026 +0000
Review "Always de-register upgraded connection statistics..."
Avoid double deregistration
---
java/org/apache/coyote/http11/upgrade/UpgradeInfo.java | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/java/org/apache/coyote/http11/upgrade/UpgradeInfo.java
b/java/org/apache/coyote/http11/upgrade/UpgradeInfo.java
index 5a92d7ed89..9a5a623234 100644
--- a/java/org/apache/coyote/http11/upgrade/UpgradeInfo.java
+++ b/java/org/apache/coyote/http11/upgrade/UpgradeInfo.java
@@ -16,6 +16,7 @@
*/
package org.apache.coyote.http11.upgrade;
+import java.util.concurrent.atomic.AtomicReference;
import java.util.concurrent.atomic.LongAdder;
/**
@@ -34,7 +35,7 @@ public class UpgradeInfo {
/**
* The parent group info for aggregated statistics.
*/
- private UpgradeGroupInfo groupInfo = null;
+ private final AtomicReference<UpgradeGroupInfo> groupInfo = new
AtomicReference<>();
/**
* Counter for bytes sent.
@@ -63,7 +64,7 @@ public class UpgradeInfo {
* @return the group info
*/
public UpgradeGroupInfo getGlobalProcessor() {
- return groupInfo;
+ return groupInfo.get();
}
@@ -74,12 +75,12 @@ public class UpgradeInfo {
*/
public void setGroupInfo(UpgradeGroupInfo groupInfo) {
if (groupInfo == null) {
- if (this.groupInfo != null) {
- this.groupInfo.removeUpgradeInfo(this);
- this.groupInfo = null;
+ UpgradeGroupInfo oldGroupInfo = this.groupInfo.getAndSet(null);
+ if (oldGroupInfo != null) {
+ oldGroupInfo.removeUpgradeInfo(this);
}
} else {
- this.groupInfo = groupInfo;
+ this.groupInfo.set(groupInfo);
groupInfo.addUpgradeInfo(this);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]