This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch 11.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/11.0.x by this push:
new b8f292ec19 No configuration change unless the channel is fully stopped.
b8f292ec19 is described below
commit b8f292ec19e55dcf25eb5af690b00e918f53b938
Author: Mark Thomas <[email protected]>
AuthorDate: Tue Sep 16 11:01:54 2025 +0100
No configuration change unless the channel is fully stopped.
---
.../apache/catalina/tribes/group/ChannelCoordinator.java | 15 ++++++++++++---
.../apache/catalina/tribes/group/LocalStrings.properties | 1 +
webapps/docs/changelog.xml | 8 ++++++++
3 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/java/org/apache/catalina/tribes/group/ChannelCoordinator.java
b/java/org/apache/catalina/tribes/group/ChannelCoordinator.java
index 2970963658..2bd9361f13 100644
--- a/java/org/apache/catalina/tribes/group/ChannelCoordinator.java
+++ b/java/org/apache/catalina/tribes/group/ChannelCoordinator.java
@@ -273,7 +273,10 @@ public class ChannelCoordinator extends
ChannelInterceptorBase implements Messag
return membershipService;
}
- public void setClusterReceiver(ChannelReceiver clusterReceiver) {
+ public synchronized void setClusterReceiver(ChannelReceiver
clusterReceiver) {
+ if (startLevel != 0) {
+ throw new
IllegalStateException(sm.getString("channelCoordinator.invalidState.notStopped"));
+ }
if (clusterReceiver != null) {
this.clusterReceiver = clusterReceiver;
this.clusterReceiver.setMessageListener(this);
@@ -285,11 +288,17 @@ public class ChannelCoordinator extends
ChannelInterceptorBase implements Messag
}
}
- public void setClusterSender(ChannelSender clusterSender) {
+ public synchronized void setClusterSender(ChannelSender clusterSender) {
+ if (startLevel != 0) {
+ throw new
IllegalStateException(sm.getString("channelCoordinator.invalidState.notStopped"));
+ }
this.clusterSender = clusterSender;
}
- public void setMembershipService(MembershipService membershipService) {
+ public synchronized void setMembershipService(MembershipService
membershipService) {
+ if (startLevel != 0) {
+ throw new
IllegalStateException(sm.getString("channelCoordinator.invalidState.notStopped"));
+ }
this.membershipService = membershipService;
this.membershipService.setMembershipListener(this);
}
diff --git a/java/org/apache/catalina/tribes/group/LocalStrings.properties
b/java/org/apache/catalina/tribes/group/LocalStrings.properties
index 68c47b7378..422fced1f4 100644
--- a/java/org/apache/catalina/tribes/group/LocalStrings.properties
+++ b/java/org/apache/catalina/tribes/group/LocalStrings.properties
@@ -18,6 +18,7 @@
channelCoordinator.alreadyStarted=Channel already started for level:[{0}]
channelCoordinator.invalid.startLevel=Invalid start level, valid levels
are:SND_RX_SEQ,SND_TX_SEQ,MBR_TX_SEQ,MBR_RX_SEQ
+channelCoordinator.invalidState.notStopped=Configuration may not be changed
until the channel has been fully stopped
groupChannel.listener.alreadyExist=Listener already exists:[{0}][{1}]
groupChannel.noDestination=No destination given
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 78299b2046..bc98600231 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -138,6 +138,14 @@
</add>
</changelog>
</subsection>
+ <subsection name="Cluster">
+ <changelog>
+ <fix>
+ Prevent the channel configuration (sender, receiver, membership
service)
+ from being changed unless the channel is fully stopped. (markt)
+ </fix>
+ </changelog>
+ </subsection>
<subsection name="Web applications">
<changelog>
<fix>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]