This is an automated email from the ASF dual-hosted git repository.

rmaucher pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/9.0.x by this push:
     new 5f00c98dea Minor fixes from code review
5f00c98dea is described below

commit 5f00c98deada5f13f95754711bc341cb3e4511f8
Author: remm <[email protected]>
AuthorDate: Tue Jun 2 13:43:33 2026 +0200

    Minor fixes from code review
---
 java/org/apache/catalina/mapper/MapperListener.java            |  9 ++-------
 java/org/apache/catalina/realm/CombinedRealm.java              |  5 +++--
 java/org/apache/jasper/compiler/AttributeParser.java           |  2 +-
 java/org/apache/tomcat/util/http/MimeHeaders.java              | 10 +++++++++-
 java/org/apache/tomcat/util/http/WebdavIfHeader.java           |  4 +++-
 java/org/apache/tomcat/util/json/JSONParser.java               |  4 ++--
 java/org/apache/tomcat/util/json/JSONParser.jjt                |  4 ++--
 java/org/apache/tomcat/util/net/SSLUtilBase.java               |  2 +-
 java/org/apache/tomcat/util/net/SocketWrapperBase.java         |  2 +-
 java/org/apache/tomcat/util/net/openssl/ciphers/Group.java     |  2 +-
 .../net/openssl/ciphers/OpenSSLCipherConfigurationParser.java  |  9 ++++++---
 .../tomcat/util/net/openssl/ciphers/SignatureScheme.java       |  2 +-
 .../apache/tomcat/util/net/openssl/panama/OpenSSLLibrary.java  |  2 +-
 java/org/apache/tomcat/util/openssl/openssl_h_Macros.java      |  6 +++---
 14 files changed, 36 insertions(+), 27 deletions(-)

diff --git a/java/org/apache/catalina/mapper/MapperListener.java 
b/java/org/apache/catalina/mapper/MapperListener.java
index 8441a38c61..62c3472644 100644
--- a/java/org/apache/catalina/mapper/MapperListener.java
+++ b/java/org/apache/catalina/mapper/MapperListener.java
@@ -64,11 +64,6 @@ public class MapperListener extends LifecycleMBeanBase 
implements ContainerListe
      */
     private static final StringManager sm = 
StringManager.getManager(Constants.Package);
 
-    /**
-     * The domain (effectively the engine) this mapper is associated with
-     */
-    private final String domain = null;
-
 
     // ----------------------------------------------------------- Constructors
 
@@ -301,7 +296,7 @@ public class MapperListener extends LifecycleMBeanBase 
implements ContainerListe
         findDefaultHost();
 
         if (log.isDebugEnabled()) {
-            log.debug(sm.getString("mapperListener.registerHost", 
host.getName(), domain, service));
+            log.debug(sm.getString("mapperListener.registerHost", 
host.getName(), getDomainInternal(), service));
         }
     }
 
@@ -319,7 +314,7 @@ public class MapperListener extends LifecycleMBeanBase 
implements ContainerListe
         findDefaultHost();
 
         if (log.isDebugEnabled()) {
-            log.debug(sm.getString("mapperListener.unregisterHost", hostname, 
domain, service));
+            log.debug(sm.getString("mapperListener.unregisterHost", hostname, 
getDomainInternal(), service));
         }
     }
 
diff --git a/java/org/apache/catalina/realm/CombinedRealm.java 
b/java/org/apache/catalina/realm/CombinedRealm.java
index d4d8ba86d2..d810de8758 100644
--- a/java/org/apache/catalina/realm/CombinedRealm.java
+++ b/java/org/apache/catalina/realm/CombinedRealm.java
@@ -30,6 +30,7 @@ import org.apache.catalina.Lifecycle;
 import org.apache.catalina.LifecycleException;
 import org.apache.catalina.Realm;
 import org.apache.catalina.Wrapper;
+import org.apache.catalina.util.LifecycleMBeanBase;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.ietf.jgss.GSSContext;
@@ -80,8 +81,8 @@ public class CombinedRealm extends RealmBase {
     public ObjectName[] getRealms() {
         ObjectName[] result = new ObjectName[realms.size()];
         for (Realm realm : realms) {
-            if (realm instanceof RealmBase) {
-                result[realms.indexOf(realm)] = ((RealmBase) 
realm).getObjectName();
+            if (realm instanceof LifecycleMBeanBase) {
+                result[realms.indexOf(realm)] = ((LifecycleMBeanBase) 
realm).getObjectName();
             }
         }
         return result;
diff --git a/java/org/apache/jasper/compiler/AttributeParser.java 
b/java/org/apache/jasper/compiler/AttributeParser.java
index 48c14e1a42..94340826f7 100644
--- a/java/org/apache/jasper/compiler/AttributeParser.java
+++ b/java/org/apache/jasper/compiler/AttributeParser.java
@@ -198,7 +198,7 @@ public class AttributeParser {
                 result.append(ch);
             } else if (ch == '\\') {
                 result.append(ch);
-                if (insideLiteral && size < i) {
+                if (insideLiteral && i < size) {
                     if (quoteAttributeEL) {
                         ch = nextChar();
                     } else {
diff --git a/java/org/apache/tomcat/util/http/MimeHeaders.java 
b/java/org/apache/tomcat/util/http/MimeHeaders.java
index 114e95bbe9..939c64197e 100644
--- a/java/org/apache/tomcat/util/http/MimeHeaders.java
+++ b/java/org/apache/tomcat/util/http/MimeHeaders.java
@@ -171,20 +171,28 @@ public class MimeHeaders {
             if 
(allowedHeaders.contains(name.trim().toLowerCase(Locale.ENGLISH))) {
                 ++j;
                 if (j != i) {
+                    MimeHeaderField temp = headers[j];
                     headers[j] = headers[i];
+                    headers[i] = temp;
                 }
             }
         }
         count = ++j;
+        for (int i = count; i < headers.length; i++) {
+            if (headers[i] != null) {
+                headers[i].recycle();
+            }
+        }
     }
 
 
     /**
-     * Duplicate headers from the source.
+     * Duplicate headers from the source. Existing headers are all cleared.
      * @param source the source headers
      * @throws IOException if an I/O error occurs
      */
     public void duplicate(MimeHeaders source) throws IOException {
+        recycle();
         for (int i = 0; i < source.size(); i++) {
             MimeHeaderField mhf = createHeader();
             mhf.getName().duplicate(source.getName(i));
diff --git a/java/org/apache/tomcat/util/http/WebdavIfHeader.java 
b/java/org/apache/tomcat/util/http/WebdavIfHeader.java
index 27d2d615ab..a02b43c3ec 100644
--- a/java/org/apache/tomcat/util/http/WebdavIfHeader.java
+++ b/java/org/apache/tomcat/util/http/WebdavIfHeader.java
@@ -868,9 +868,11 @@ public class WebdavIfHeader {
             if (resource.startsWith("/")) {
                 path = resource;
                 uri = WebdavIfHeader.this.uriPrefix + resource;
-            } else {
+            } else if (resource.length() > 
WebdavIfHeader.this.uriPrefix.length()) {
                 path = 
resource.substring(WebdavIfHeader.this.uriPrefix.length());
                 uri = resource;
+            } else {
+                return false;
             }
             IfHeaderList list = get(path);
             if (list == null) {
diff --git a/java/org/apache/tomcat/util/json/JSONParser.java 
b/java/org/apache/tomcat/util/json/JSONParser.java
index 4d03d1d53a..cb9cf3500b 100644
--- a/java/org/apache/tomcat/util/json/JSONParser.java
+++ b/java/org/apache/tomcat/util/json/JSONParser.java
@@ -371,7 +371,7 @@ public class JSONParser implements JSONParserConstants {
                 if (nativeNumbers) {
                     {
                         if ("" != null) {
-                            return Long.valueOf(t.image);
+                            return Double.valueOf(t.image);
                         }
                     }
                 } else {
@@ -388,7 +388,7 @@ public class JSONParser implements JSONParserConstants {
                 if (nativeNumbers) {
                     {
                         if ("" != null) {
-                            return Double.valueOf(t.image);
+                            return Long.valueOf(t.image);
                         }
                     }
                 } else {
diff --git a/java/org/apache/tomcat/util/json/JSONParser.jjt 
b/java/org/apache/tomcat/util/json/JSONParser.jjt
index 39a9432862..38f9e0a0b7 100644
--- a/java/org/apache/tomcat/util/json/JSONParser.jjt
+++ b/java/org/apache/tomcat/util/json/JSONParser.jjt
@@ -323,7 +323,7 @@ Number number(): {
         t = <NUMBER_DECIMAL>
         {
             if (nativeNumbers) {
-                return Long.valueOf(t.image);
+                return Double.valueOf(t.image);
             } else {
                 return new java.math.BigDecimal(t.image);
             }
@@ -332,7 +332,7 @@ Number number(): {
         t = <NUMBER_INTEGER>
         {
             if (nativeNumbers) {
-                return Double.valueOf(t.image);
+                return Long.valueOf(t.image);
             } else {
                 return new java.math.BigInteger(substringBefore(t.image, '.'));
             }
diff --git a/java/org/apache/tomcat/util/net/SSLUtilBase.java 
b/java/org/apache/tomcat/util/net/SSLUtilBase.java
index e04cd92a64..0c1c666ef2 100644
--- a/java/org/apache/tomcat/util/net/SSLUtilBase.java
+++ b/java/org/apache/tomcat/util/net/SSLUtilBase.java
@@ -461,7 +461,7 @@ public abstract class SSLUtilBase implements SSLUtil {
             ClassLoader classLoader = getClass().getClassLoader();
             Class<?> clazz = classLoader.loadClass(className);
             if (!(TrustManager.class.isAssignableFrom(clazz))) {
-                throw new 
InstantiationException(sm.getString("sslUtilBase.invalidTrustManagerClassName", 
className));
+                throw new 
IllegalArgumentException(sm.getString("sslUtilBase.invalidTrustManagerClassName",
 className));
             }
             Object trustManagerObject = clazz.getConstructor().newInstance();
             TrustManager trustManager = (TrustManager) trustManagerObject;
diff --git a/java/org/apache/tomcat/util/net/SocketWrapperBase.java 
b/java/org/apache/tomcat/util/net/SocketWrapperBase.java
index 76a95c0e5e..643302aeff 100644
--- a/java/org/apache/tomcat/util/net/SocketWrapperBase.java
+++ b/java/org/apache/tomcat/util/net/SocketWrapperBase.java
@@ -525,7 +525,7 @@ public abstract class SocketWrapperBase<E> {
      * @return {@code true} if there is pending write data
      */
     public boolean hasDataToWrite() {
-        return !socketBufferHandler.isWriteBufferEmpty() || 
!nonBlockingWriteBuffer.isEmpty();
+        return (socketBufferHandler != null && 
!socketBufferHandler.isWriteBufferEmpty()) || !nonBlockingWriteBuffer.isEmpty();
     }
 
     /**
diff --git a/java/org/apache/tomcat/util/net/openssl/ciphers/Group.java 
b/java/org/apache/tomcat/util/net/openssl/ciphers/Group.java
index bb876aae73..670d79673d 100644
--- a/java/org/apache/tomcat/util/net/openssl/ciphers/Group.java
+++ b/java/org/apache/tomcat/util/net/openssl/ciphers/Group.java
@@ -130,7 +130,7 @@ public enum Group {
         for (Group group : values()) {
             int id = group.getId();
 
-            if (id > 0 && id < 0xFFFF) {
+            if (id >= 0 && id < 0xFFFF) {
                 idMap.put(Integer.valueOf(id), group);
             }
         }
diff --git 
a/java/org/apache/tomcat/util/net/openssl/ciphers/OpenSSLCipherConfigurationParser.java
 
b/java/org/apache/tomcat/util/net/openssl/ciphers/OpenSSLCipherConfigurationParser.java
index 2c25ba4fac..121807860e 100644
--- 
a/java/org/apache/tomcat/util/net/openssl/ciphers/OpenSSLCipherConfigurationParser.java
+++ 
b/java/org/apache/tomcat/util/net/openssl/ciphers/OpenSSLCipherConfigurationParser.java
@@ -50,7 +50,7 @@ public class OpenSSLCipherConfigurationParser {
     private static final Log log = 
LogFactory.getLog(OpenSSLCipherConfigurationParser.class);
     private static final StringManager sm = 
StringManager.getManager(OpenSSLCipherConfigurationParser.class);
 
-    private static boolean initialized = false;
+    private static volatile boolean initialized = false;
 
     private static final String SEPARATOR = ":|,| ";
     /**
@@ -342,7 +342,10 @@ public class OpenSSLCipherConfigurationParser {
 
     private static final Map<String,String> jsseToOpenSSL = new HashMap<>();
 
-    private static void init() {
+    private static synchronized void init() {
+        if (initialized) {
+            return;
+        }
 
         for (Cipher cipher : Cipher.values()) {
             String alias = cipher.getOpenSSLAlias();
@@ -841,8 +844,8 @@ public class OpenSSLCipherConfigurationParser {
                 }
             } else {
                 builder.append(cipher.getOpenSSLAlias());
+                builder.append(separator);
             }
-            builder.append(separator);
         }
         return builder.substring(0, builder.length() - 1);
     }
diff --git 
a/java/org/apache/tomcat/util/net/openssl/ciphers/SignatureScheme.java 
b/java/org/apache/tomcat/util/net/openssl/ciphers/SignatureScheme.java
index 947fd17e7b..c6ddad9db1 100644
--- a/java/org/apache/tomcat/util/net/openssl/ciphers/SignatureScheme.java
+++ b/java/org/apache/tomcat/util/net/openssl/ciphers/SignatureScheme.java
@@ -149,7 +149,7 @@ public enum SignatureScheme {
         for (SignatureScheme scheme : values()) {
             int id = scheme.getId();
 
-            if (id > 0 && id < 0xFFFF) {
+            if (id >= 0 && id < 0xFFFF) {
                 idMap.put(Integer.valueOf(id), scheme);
             }
         }
diff --git a/java/org/apache/tomcat/util/net/openssl/panama/OpenSSLLibrary.java 
b/java/org/apache/tomcat/util/net/openssl/panama/OpenSSLLibrary.java
index 2e51ad7141..acf9c9566f 100644
--- a/java/org/apache/tomcat/util/net/openssl/panama/OpenSSLLibrary.java
+++ b/java/org/apache/tomcat/util/net/openssl/panama/OpenSSLLibrary.java
@@ -203,7 +203,7 @@ public class OpenSSLLibrary {
                         enginePointer = ENGINE_by_id(engine);
                         if (MemorySegment.NULL.equals(enginePointer)) {
                             enginePointer = 
ENGINE_by_id(memorySession.allocateFrom("dynamic"));
-                            if (enginePointer != null) {
+                            if (!MemorySegment.NULL.equals(enginePointer)) {
                                 if (ENGINE_ctrl_cmd_string(enginePointer, 
memorySession.allocateFrom("SO_PATH"), engine,
                                         0) == 0 ||
                                         ENGINE_ctrl_cmd_string(enginePointer, 
memorySession.allocateFrom("LOAD"),
diff --git a/java/org/apache/tomcat/util/openssl/openssl_h_Macros.java 
b/java/org/apache/tomcat/util/openssl/openssl_h_Macros.java
index 15528547b5..5d86f7a54c 100644
--- a/java/org/apache/tomcat/util/openssl/openssl_h_Macros.java
+++ b/java/org/apache/tomcat/util/openssl/openssl_h_Macros.java
@@ -383,7 +383,7 @@ public class openssl_h_Macros {
         if (openssl_h_Compatibility.BORINGSSL) {
             return 1;
         } else {
-            return SSL_CTX_ctrl(sslCtx, SSL_CTRL_SET_DH_AUTO(), 1, 
MemorySegment.NULL);
+            return SSL_CTX_ctrl(sslCtx, SSL_CTRL_SET_DH_AUTO(), onoff, 
MemorySegment.NULL);
         }
     }
 
@@ -498,7 +498,7 @@ public class openssl_h_Macros {
      * @return > 0 if successful
      */
     public static long X509_LOOKUP_add_dir(MemorySegment x509Lookup, 
MemorySegment name, long type) {
-        return X509_LOOKUP_ctrl(x509Lookup, X509_L_ADD_DIR(), name, 
X509_FILETYPE_PEM(), MemorySegment.NULL);
+        return X509_LOOKUP_ctrl(x509Lookup, X509_L_ADD_DIR(), name, type, 
MemorySegment.NULL);
     }
 
 
@@ -515,7 +515,7 @@ public class openssl_h_Macros {
      * @return > 0 if successful
      */
     public static long X509_LOOKUP_load_file(MemorySegment x509Lookup, 
MemorySegment name, long type) {
-        return X509_LOOKUP_ctrl(x509Lookup, X509_L_FILE_LOAD(), name, 
X509_FILETYPE_PEM(), MemorySegment.NULL);
+        return X509_LOOKUP_ctrl(x509Lookup, X509_L_FILE_LOAD(), name, type, 
MemorySegment.NULL);
     }
 
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to