This is an automated email from the ASF dual-hosted git repository.
rmaucher pushed a commit to branch 11.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/11.0.x by this push:
new bee31ec95f Avoid possible NPEs
bee31ec95f is described below
commit bee31ec95fc73107552b65652d7d3a642697e1aa
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 ff1b6798d3..d4587bed73 100644
--- a/java/org/apache/catalina/connector/Request.java
+++ b/java/org/apache/catalina/connector/Request.java
@@ -1392,6 +1392,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 71f033df05..30647ca6bb 100644
--- a/java/org/apache/catalina/connector/Response.java
+++ b/java/org/apache/catalina/connector/Response.java
@@ -790,6 +790,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);
@@ -833,6 +836,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);
@@ -1036,6 +1042,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 12f6a011f2..479fa0457b 100644
--- a/java/org/apache/catalina/connector/ResponseFacade.java
+++ b/java/org/apache/catalina/connector/ResponseFacade.java
@@ -257,6 +257,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 753bbe2168..5c6afda3d5 100644
--- a/java/org/apache/catalina/core/StandardContext.java
+++ b/java/org/apache/catalina/core/StandardContext.java
@@ -4961,7 +4961,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 02a162debf..daaca98633 100644
--- a/java/org/apache/catalina/core/StandardHost.java
+++ b/java/org/apache/catalina/core/StandardHost.java
@@ -724,7 +724,7 @@ public class StandardHost extends ContainerBase implements
Host {
@Override
public String[] findAliases() {
synchronized (aliasesLock) {
- return this.aliases;
+ return this.aliases.clone();
}
}
@@ -825,7 +825,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 0098332752..f837c1363e 100644
--- a/java/org/apache/catalina/core/StandardHostValve.java
+++ b/java/org/apache/catalina/core/StandardHostValve.java
@@ -243,7 +243,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]