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]

Reply via email to