This is an automated email from the ASF dual-hosted git repository.
markt-asf 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 1c00d157e5 Further error handling improvements
1c00d157e5 is described below
commit 1c00d157e5f990715a4e404f5edeffd06a6a50e0
Author: Mark Thomas <[email protected]>
AuthorDate: Wed Jun 24 18:38:14 2026 +0100
Further error handling improvements
---
.../apache/catalina/ha/backend/LocalStrings.properties | 2 ++
java/org/apache/catalina/ha/backend/TcpSender.java | 16 ++++++++++++++--
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/java/org/apache/catalina/ha/backend/LocalStrings.properties
b/java/org/apache/catalina/ha/backend/LocalStrings.properties
index 1190dc1fcf..a451110707 100644
--- a/java/org/apache/catalina/ha/backend/LocalStrings.properties
+++ b/java/org/apache/catalina/ha/backend/LocalStrings.properties
@@ -28,6 +28,8 @@ multiCastSender.multiCastFailed=Unable to use multicast
multiCastSender.sendFailed=Unable to send multicast message
tcpSender.connectionFailed=Unable to connect to proxy
+tcpSender.invalidContentLength=Unable to parse content length [{0}]
+tcpSender.invalidHeaderLine=Unable to parse header line [{0}]
tcpSender.invalidProxyList=Invalid proxy list
tcpSender.notInitialized=Not initialized
tcpSender.readError=Error reading response content
diff --git a/java/org/apache/catalina/ha/backend/TcpSender.java
b/java/org/apache/catalina/ha/backend/TcpSender.java
index 9f80ea7f2b..10b64cf8bb 100644
--- a/java/org/apache/catalina/ha/backend/TcpSender.java
+++ b/java/org/apache/catalina/ha/backend/TcpSender.java
@@ -177,7 +177,7 @@ public class TcpSender implements Sender {
// Ignore
}
if (status != 200) {
- log.error(sm.getString("tcpSender.responseErrorCode",
Integer.valueOf(status)));
+ log.error(sm.getString("tcpSender.responseErrorCode",
responseStatus));
close(i);
continue;
}
@@ -191,8 +191,20 @@ public class TcpSender implements Sender {
String headerName = header.substring(0, colon).trim();
String headerValue = header.substring(colon +
1).trim();
if ("content-length".equalsIgnoreCase(headerName)) {
- contentLength = Integer.parseInt(headerValue);
+ try {
+ contentLength = Integer.parseInt(headerValue);
+ } catch (NumberFormatException e) {
+
log.error(sm.getString("tcpSender.invalidContentLength", headerValue));
+ close(i);
+ break;
+ }
}
+ } else {
+ log.error(sm.getString("tcpSender.invalidHeaderLine",
header));
+ close(i);
+ // Clear any content length if one has been read.
+ contentLength = 0;
+ break;
}
header = connectionReaders[i].readLine();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]