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 b860eba2c1 Review "Hand out a copy of the static members list"
b860eba2c1 is described below
commit b860eba2c1e58946778696844217e5af415e8e2e
Author: Mark Thomas <[email protected]>
AuthorDate: Thu Oct 22 19:36:18 2026 +0100
Review "Hand out a copy of the static members list"
Fix additional concurrency issues with the members list
This includes a small API change but it is with the APi considered
internal to Tomcat
Co-authored by: Claude / Sonnet 5.5
---
.../catalina/tribes/membership/StaticMembershipProvider.java | 4 ++--
.../apache/catalina/tribes/membership/StaticMembershipService.java | 7 +++++--
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git
a/java/org/apache/catalina/tribes/membership/StaticMembershipProvider.java
b/java/org/apache/catalina/tribes/membership/StaticMembershipProvider.java
index aa0d891867..06952e926a 100644
--- a/java/org/apache/catalina/tribes/membership/StaticMembershipProvider.java
+++ b/java/org/apache/catalina/tribes/membership/StaticMembershipProvider.java
@@ -73,7 +73,7 @@ public class StaticMembershipProvider extends
MembershipProviderBase
/**
* List of static members for this cluster.
*/
- protected ArrayList<StaticMember> staticMembers;
+ protected List<StaticMember> staticMembers;
/**
* Send options flag for channel messages.
*/
@@ -430,7 +430,7 @@ public class StaticMembershipProvider extends
MembershipProviderBase
* Sets the static members for this cluster.
* @param staticMembers the list of static members
*/
- public void setStaticMembers(ArrayList<StaticMember> staticMembers) {
+ public void setStaticMembers(List<StaticMember> staticMembers) {
this.staticMembers = staticMembers;
}
diff --git
a/java/org/apache/catalina/tribes/membership/StaticMembershipService.java
b/java/org/apache/catalina/tribes/membership/StaticMembershipService.java
index 2d4f8c399e..58cc9d0f18 100644
--- a/java/org/apache/catalina/tribes/membership/StaticMembershipService.java
+++ b/java/org/apache/catalina/tribes/membership/StaticMembershipService.java
@@ -20,7 +20,9 @@ import java.io.IOException;
import java.net.InetAddress;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.List;
import java.util.Properties;
+import java.util.concurrent.CopyOnWriteArrayList;
import javax.management.ObjectName;
@@ -45,7 +47,7 @@ public class StaticMembershipService extends
MembershipServiceBase implements St
/**
* List of static members configured for this service.
*/
- protected final ArrayList<StaticMember> staticMembers = new ArrayList<>();
+ protected final List<StaticMember> staticMembers = new
CopyOnWriteArrayList<>();
private StaticMember localMember;
private StaticMembershipProvider provider;
@@ -165,7 +167,8 @@ public class StaticMembershipService extends
MembershipServiceBase implements St
/**
* Returns a copy of the list of static members. Mutating the returned
list has no effect on
- * this service. The provider uses the configured list directly while it
runs.
+ * this service. The configured list is safe to modify while the provider
runs, so use
+ * {@link #addStaticMember(StaticMember)} and {@link
#removeStaticMember(StaticMember)} to change it.
* @return a copy of the static members list
*/
public ArrayList<StaticMember> getStaticMembers() {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]