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 3a18e2dc0a Minor fixes from code review
3a18e2dc0a is described below
commit 3a18e2dc0a569e1d0863864ea285340a2f8578b6
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 94b0035977..d6ee528498 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 3e937ab01a..5ead82705e 100644
--- a/java/org/apache/tomcat/util/http/MimeHeaders.java
+++ b/java/org/apache/tomcat/util/http/MimeHeaders.java
@@ -166,20 +166,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 1f31790f42..9a0c370284 100644
--- a/java/org/apache/tomcat/util/http/WebdavIfHeader.java
+++ b/java/org/apache/tomcat/util/http/WebdavIfHeader.java
@@ -872,9 +872,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 ad6b1bc9e3..89c1860c77 100644
--- a/java/org/apache/tomcat/util/net/SSLUtilBase.java
+++ b/java/org/apache/tomcat/util/net/SSLUtilBase.java
@@ -460,7 +460,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 638c5751a1..5f06f9565d 100644
--- a/java/org/apache/tomcat/util/net/SocketWrapperBase.java
+++ b/java/org/apache/tomcat/util/net/SocketWrapperBase.java
@@ -500,7 +500,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 18b8301a1f..b39ff4599a 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]