On Tue, Jun 16, 2026 at 10:30 AM <[email protected]> wrote:
>
> This is an automated email from the ASF dual-hosted git repository.
>
> rmaucher 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 e1ba76cb1a Minor fixes from code review
> e1ba76cb1a is described below
>
> commit e1ba76cb1a9351106496460ff6aad8893288cb22
> Author: remm <[email protected]>
> AuthorDate: Tue Jun 16 10:28:49 2026 +0200
>
> Minor fixes from code review
> ---
> .../org/apache/catalina/tribes/group/ChannelCoordinator.java | 12
> +++++++-----
> java/org/apache/catalina/tribes/group/GroupChannel.java | 3 ++-
> .../tribes/group/interceptors/EncryptInterceptor.java | 5 ++---
> java/org/apache/catalina/tribes/io/XByteBuffer.java | 6 +++---
> .../tribes/membership/cloud/DNSMembershipProvider.java | 11 +++++------
> java/org/apache/catalina/tribes/transport/nio/NioSender.java | 1 -
> java/org/apache/catalina/tribes/util/Arrays.java | 2 +-
> java/org/apache/catalina/tribes/util/UUIDGenerator.java | 2 +-
> 8 files changed, 21 insertions(+), 21 deletions(-)
>
> diff --git a/java/org/apache/catalina/tribes/group/ChannelCoordinator.java
> b/java/org/apache/catalina/tribes/group/ChannelCoordinator.java
> index 8d24dc3146..5ef858feac 100644
> --- a/java/org/apache/catalina/tribes/group/ChannelCoordinator.java
> +++ b/java/org/apache/catalina/tribes/group/ChannelCoordinator.java
> @@ -213,10 +213,10 @@ public class ChannelCoordinator extends
> ChannelInterceptorBase implements Messag
> *
> * @param svc int value of <BR>
> * DEFAULT - will shutdown all services <BR>
> - * MBR_RX_SEQ - starts the membership receiver <BR>
> - * MBR_TX_SEQ - starts the membership broadcaster <BR>
> - * SND_TX_SEQ - starts the replication transmitter<BR>
> - * SND_RX_SEQ - starts the replication receiver<BR>
> + * MBR_RX_SEQ - stops the membership receiver <BR>
> + * MBR_TX_SEQ - stops the membership broadcaster <BR>
> + * SND_TX_SEQ - stops the replication transmitter<BR>
> + * SND_RX_SEQ - stops the replication receiver<BR>
> *
> * @throws ChannelException if a startup error occurs or the service is
> already started.
> */
> @@ -260,7 +260,9 @@ public class ChannelCoordinator extends
> ChannelInterceptorBase implements Messag
> }
>
> startLevel = (startLevel & (~svc));
> - setChannel(null);
> + if (startLevel == 0) {
> + setChannel(null);
> + }
> } catch (Exception e) {
> throw new ChannelException(e);
> }
> diff --git a/java/org/apache/catalina/tribes/group/GroupChannel.java
> b/java/org/apache/catalina/tribes/group/GroupChannel.java
> index 06151b7e83..a47876be42 100644
> --- a/java/org/apache/catalina/tribes/group/GroupChannel.java
> +++ b/java/org/apache/catalina/tribes/group/GroupChannel.java
> @@ -119,7 +119,8 @@ public class GroupChannel extends ChannelInterceptorBase
> implements ManagedChann
> protected final List<ChannelListener> channelListeners = new
> CopyOnWriteArrayList<>();
>
> /**
> - * If set to true, the GroupChannel will check to make sure that
> + * If set to true, the GroupChannel will throw an error upon start if
> two interceptors
> + * are using the same option flag.
> */
> protected boolean optionCheck = false;
>
> diff --git
> a/java/org/apache/catalina/tribes/group/interceptors/EncryptInterceptor.java
> b/java/org/apache/catalina/tribes/group/interceptors/EncryptInterceptor.java
> index b1b83cb929..5cc9359a5d 100644
> ---
> a/java/org/apache/catalina/tribes/group/interceptors/EncryptInterceptor.java
> +++
> b/java/org/apache/catalina/tribes/group/interceptors/EncryptInterceptor.java
> @@ -162,10 +162,9 @@ public class EncryptInterceptor extends
> ChannelInterceptorBase implements Encryp
> */
> @Override
> public void setEncryptionAlgorithm(String algorithm) {
> - if (null == getEncryptionAlgorithm()) {
> - throw new
> IllegalStateException(sm.getString("encryptInterceptor.algorithm.required"));
> + if (algorithm == null) {
> + throw new
> IllegalArgumentException(sm.getString("encryptInterceptor.algorithm.required"));
> }
> -
> int pos = algorithm.indexOf('/');
> if (pos < 0) {
> throw new
> IllegalArgumentException(sm.getString("encryptInterceptor.algorithm.required"));
> diff --git a/java/org/apache/catalina/tribes/io/XByteBuffer.java
> b/java/org/apache/catalina/tribes/io/XByteBuffer.java
> index a87f02df47..07da2de175 100644
> --- a/java/org/apache/catalina/tribes/io/XByteBuffer.java
> +++ b/java/org/apache/catalina/tribes/io/XByteBuffer.java
> @@ -473,13 +473,13 @@ public class XByteBuffer implements Serializable {
> * @return the output buffer
> */
> public static byte[] createDataPackage(byte[] data, int doff, int
> dlength, byte[] buffer, int bufoff) {
> - if ((buffer.length - bufoff) > getDataPackageLength(dlength)) {
> + if ((buffer.length - bufoff) < getDataPackageLength(dlength)) {
> throw new
> ArrayIndexOutOfBoundsException(sm.getString("xByteBuffer.unableCreate"));
> }
> System.arraycopy(START_DATA, 0, buffer, bufoff, START_DATA.length);
> - toBytes(data.length, buffer, bufoff + START_DATA.length);
> + toBytes(dlength, buffer, bufoff + START_DATA.length);
> System.arraycopy(data, doff, buffer, bufoff + START_DATA.length + 4,
> dlength);
> - System.arraycopy(END_DATA, 0, buffer, bufoff + START_DATA.length + 4
> + data.length, END_DATA.length);
> + System.arraycopy(END_DATA, 0, buffer, bufoff + START_DATA.length + 4
> + dlength, END_DATA.length);
> return buffer;
> }
>
> diff --git
> a/java/org/apache/catalina/tribes/membership/cloud/DNSMembershipProvider.java
> b/java/org/apache/catalina/tribes/membership/cloud/DNSMembershipProvider.java
> index a794e9bc65..5d8ff95816 100644
> ---
> a/java/org/apache/catalina/tribes/membership/cloud/DNSMembershipProvider.java
> +++
> b/java/org/apache/catalina/tribes/membership/cloud/DNSMembershipProvider.java
> @@ -19,7 +19,6 @@ package org.apache.catalina.tribes.membership.cloud;
> import java.io.IOException;
> import java.io.Serializable;
> import java.net.InetAddress;
> -import java.net.URLEncoder;
> import java.net.UnknownHostException;
> import java.nio.charset.StandardCharsets;
> import java.util.ArrayList;
> @@ -132,7 +131,6 @@ public class DNSMembershipProvider extends
> CloudMembershipProvider {
> if (log.isDebugEnabled()) {
> log.debug(sm.getString("cloudMembershipProvider.start",
> dnsServiceName));
> }
> - dnsServiceName = URLEncoder.encode(dnsServiceName,
> StandardCharsets.UTF_8);
I have no idea why encoding was done here. This is then used in
InetAddress.getAllByName(dnsServiceName) where it wouldn't work out in
many cases.
Rémy
>
> // Fetch initial members
> heartbeat();
> @@ -204,11 +202,12 @@ public class DNSMembershipProvider extends
> CloudMembershipProvider {
> byte[] host = sender.getHost();
> int i = 0;
> StringBuilder buf = new StringBuilder();
> - buf.append(host[i++] & 0xff);
> - for (; i < host.length; i++) {
> - buf.append('.').append(host[i] & 0xff);
> + if (host.length > 0 ) {
> + buf.append(host[i++] & 0xff);
> + for (; i < host.length; i++) {
> + buf.append('.').append(host[i] & 0xff);
> + }
> }
> -
> byte[] id =
> digest(buf.toString().getBytes(StandardCharsets.US_ASCII));
> member.setUniqueId(id);
> member.setMemberAliveTime(-1);
> diff --git a/java/org/apache/catalina/tribes/transport/nio/NioSender.java
> b/java/org/apache/catalina/tribes/transport/nio/NioSender.java
> index 5dc6b316d1..3fdbea3aeb 100644
> --- a/java/org/apache/catalina/tribes/transport/nio/NioSender.java
> +++ b/java/org/apache/catalina/tribes/transport/nio/NioSender.java
> @@ -186,7 +186,6 @@ public class NioSender extends AbstractSender {
> socketChannel.socket().setSendBufferSize(getTxBufSize());
> socketChannel.socket().setReceiveBufferSize(getRxBufSize());
> socketChannel.socket().setSoTimeout((int) getTimeout());
> - socketChannel.socket().setSoLinger(getSoLingerOn(),
> getSoLingerOn() ? getSoLingerTime() : 0);
> socketChannel.socket().setTcpNoDelay(getTcpNoDelay());
> socketChannel.socket().setKeepAlive(getSoKeepAlive());
> socketChannel.socket().setReuseAddress(getSoReuseAddress());
> diff --git a/java/org/apache/catalina/tribes/util/Arrays.java
> b/java/org/apache/catalina/tribes/util/Arrays.java
> index 8bcb7fed71..45474590a6 100644
> --- a/java/org/apache/catalina/tribes/util/Arrays.java
> +++ b/java/org/apache/catalina/tribes/util/Arrays.java
> @@ -63,7 +63,7 @@ public class Arrays {
> }
> boolean match = true;
> int pos = keyoffset;
> - for (int i = srcoffset; match && i < length; i++) {
> + for (int i = srcoffset; match && i < srcoffset + length; i++) {
> match = (source[i] == key[pos++]);
> }
> return match;
> diff --git a/java/org/apache/catalina/tribes/util/UUIDGenerator.java
> b/java/org/apache/catalina/tribes/util/UUIDGenerator.java
> index c70047deb0..95e1019fd2 100644
> --- a/java/org/apache/catalina/tribes/util/UUIDGenerator.java
> +++ b/java/org/apache/catalina/tribes/util/UUIDGenerator.java
> @@ -23,7 +23,7 @@ import org.apache.juli.logging.Log;
> import org.apache.juli.logging.LogFactory;
>
> /**
> - * Smple generation of a UUID.
> + * Simple generation of a UUID.
> */
> public class UUIDGenerator {
> /**
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]