This is an automated email from the ASF dual-hosted git repository.
rmaucher pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/10.1.x by this push:
new 715310a2fc Avoid possible NPEs
715310a2fc is described below
commit 715310a2fcd3729d8d85efed4747f50c692308e9
Author: remm <[email protected]>
AuthorDate: Wed May 20 21:53:32 2026 +0200
Avoid possible NPEs
Fix a cut and paste issue.
Use clone on some arrays which were missing it.
---
java/org/apache/catalina/connector/Request.java | 3 +++
java/org/apache/catalina/connector/Response.java | 9 +++++++++
java/org/apache/catalina/connector/ResponseFacade.java | 1 +
java/org/apache/catalina/core/StandardContext.java | 2 +-
java/org/apache/catalina/core/StandardHost.java | 4 ++--
java/org/apache/catalina/core/StandardHostValve.java | 3 ++-
6 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/java/org/apache/catalina/connector/Request.java
b/java/org/apache/catalina/connector/Request.java
index 2d679b2b0c..e04c8612bb 100644
--- a/java/org/apache/catalina/connector/Request.java
+++ b/java/org/apache/catalina/connector/Request.java
@@ -1434,6 +1434,9 @@ public class Request implements HttpServletRequest {
@Override
public void removeAttribute(String name) {
+ if (name == null) {
+ throw new
IllegalArgumentException(sm.getString("coyoteRequest.setAttribute.namenull"));
+ }
// Remove the specified attribute
// Pass special attributes to the native layer
if (name.startsWith("org.apache.tomcat.")) {
diff --git a/java/org/apache/catalina/connector/Response.java
b/java/org/apache/catalina/connector/Response.java
index 545f5d6900..bb2bca5571 100644
--- a/java/org/apache/catalina/connector/Response.java
+++ b/java/org/apache/catalina/connector/Response.java
@@ -794,6 +794,9 @@ public class Response implements HttpServletResponse {
@Override
public String getHeader(String name) {
+ if (name == null || name.isEmpty()) {
+ return null;
+ }
// Need special handling for Content-Type and Content-Length due to
// special handling of these in coyoteResponse
char cc = name.charAt(0);
@@ -837,6 +840,9 @@ public class Response implements HttpServletResponse {
@Override
public Collection<String> getHeaders(String name) {
+ if (name == null || name.isEmpty()) {
+ return Set.of();
+ }
// Need special handling for Content-Type and Content-Length due to
// special handling of these in coyoteResponse
char cc = name.charAt(0);
@@ -1047,6 +1053,9 @@ public class Response implements HttpServletResponse {
@Override
public boolean containsHeader(String name) {
+ if (name == null || name.isEmpty()) {
+ return false;
+ }
// Need special handling for Content-Type and Content-Length due to
// special handling of these in coyoteResponse
char cc = name.charAt(0);
diff --git a/java/org/apache/catalina/connector/ResponseFacade.java
b/java/org/apache/catalina/connector/ResponseFacade.java
index 738701f1d9..a1e6edfab4 100644
--- a/java/org/apache/catalina/connector/ResponseFacade.java
+++ b/java/org/apache/catalina/connector/ResponseFacade.java
@@ -336,6 +336,7 @@ public class ResponseFacade implements HttpServletResponse {
public void sendEarlyHints() {
+ checkFacade();
response.sendEarlyHints();
}
diff --git a/java/org/apache/catalina/core/StandardContext.java
b/java/org/apache/catalina/core/StandardContext.java
index a8b4bbc793..eee74e6215 100644
--- a/java/org/apache/catalina/core/StandardContext.java
+++ b/java/org/apache/catalina/core/StandardContext.java
@@ -4997,7 +4997,7 @@ public class StandardContext extends ContainerBase
implements Context, Notificat
try {
instanceManager.backgroundProcess();
} catch (Exception e) {
-
log.warn(sm.getString("standardContext.backgroundProcess.instanceManager",
resources), e);
+
log.warn(sm.getString("standardContext.backgroundProcess.instanceManager",
instanceManager), e);
}
}
super.backgroundProcess();
diff --git a/java/org/apache/catalina/core/StandardHost.java
b/java/org/apache/catalina/core/StandardHost.java
index 29e4bbb04c..1449b58cb8 100644
--- a/java/org/apache/catalina/core/StandardHost.java
+++ b/java/org/apache/catalina/core/StandardHost.java
@@ -727,7 +727,7 @@ public class StandardHost extends ContainerBase implements
Host {
@Override
public String[] findAliases() {
synchronized (aliasesLock) {
- return this.aliases;
+ return this.aliases.clone();
}
}
@@ -828,7 +828,7 @@ public class StandardHost extends ContainerBase implements
Host {
*/
public String[] getAliases() {
synchronized (aliasesLock) {
- return aliases;
+ return aliases.clone();
}
}
diff --git a/java/org/apache/catalina/core/StandardHostValve.java
b/java/org/apache/catalina/core/StandardHostValve.java
index 40fea3abc1..2da40a4750 100644
--- a/java/org/apache/catalina/core/StandardHostValve.java
+++ b/java/org/apache/catalina/core/StandardHostValve.java
@@ -244,7 +244,8 @@ final class StandardHostValve extends ValveBase {
// If this is an aborted request from a client just log it and return
if (realError instanceof ClientAbortException) {
if (log.isDebugEnabled()) {
- log.debug(sm.getString("standardHost.clientAbort",
realError.getCause().getMessage()));
+ log.debug(sm.getString("standardHost.clientAbort",
+ realError.getCause() == null ? realError.getMessage()
: realError.getCause().getMessage()));
}
return;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]