This is an automated email from the ASF dual-hosted git repository.
remm 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 b72d7da173 Fix content-range header length
b72d7da173 is described below
commit b72d7da17307ec56fcadaca7f8cc3be1a322970a
Author: remm <[email protected]>
AuthorDate: Mon Nov 18 14:22:19 2024 +0100
Fix content-range header length
Submitted by Justin Chen.
---
java/org/apache/catalina/servlets/DefaultServlet.java | 2 +-
.../catalina/servlets/TestDefaultServletRangeRequests.java | 13 +++++++++++--
webapps/docs/changelog.xml | 4 ++++
3 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/java/org/apache/catalina/servlets/DefaultServlet.java
b/java/org/apache/catalina/servlets/DefaultServlet.java
index 387049f749..d288725b0d 100644
--- a/java/org/apache/catalina/servlets/DefaultServlet.java
+++ b/java/org/apache/catalina/servlets/DefaultServlet.java
@@ -2356,7 +2356,7 @@ public class DefaultServlet extends HttpServlet {
}
long start = getStart(range, length);
long end = getEnd(range, length);
- ostream.println("Content-Range: bytes " + start + "-" + end +
"/" + (end - start));
+ ostream.println("Content-Range: bytes " + start + "-" + end +
"/" + length);
ostream.println();
// Printing content
diff --git
a/test/org/apache/catalina/servlets/TestDefaultServletRangeRequests.java
b/test/org/apache/catalina/servlets/TestDefaultServletRangeRequests.java
index cd695019c0..1ebf851b01 100644
--- a/test/org/apache/catalina/servlets/TestDefaultServletRangeRequests.java
+++ b/test/org/apache/catalina/servlets/TestDefaultServletRangeRequests.java
@@ -75,6 +75,8 @@ public class TestDefaultServletRangeRequests extends
TomcatBaseTest {
// Valid range
parameterSets.add(new Object[] {
"bytes=0-9", null, Integer.valueOf(206), "10", "0-9/" + len });
+ parameterSets.add(new Object[] {
+ "bytes=0-9,10-10", null, Integer.valueOf(206), null, "0-9/" +
len });
parameterSets.add(new Object[] {
"bytes=-100", null, Integer.valueOf(206), "100", (len - 100) +
"-" + (len - 1) + "/" + len });
parameterSets.add(new Object[] {
@@ -140,7 +142,7 @@ public class TestDefaultServletRangeRequests extends
TomcatBaseTest {
// Check the result
Assert.assertEquals(responseCodeExpected, rc);
- if (contentLengthExpected.length() > 0) {
+ if (contentLengthExpected != null && contentLengthExpected.length() >
0) {
String contentLength =
responseHeaders.get("Content-Length").get(0);
Assert.assertEquals(contentLengthExpected, contentLength);
}
@@ -151,7 +153,14 @@ public class TestDefaultServletRangeRequests extends
TomcatBaseTest {
if (headerValues != null && headerValues.size() == 1) {
responseRange = headerValues.get(0);
}
- Assert.assertEquals("bytes " + responseRangeExpected,
responseRange);
+ if (responseRange != null) {
+ Assert.assertEquals("bytes " + responseRangeExpected,
responseRange);
+ } else {
+ Assert.assertTrue(
+ "Expected `Content-Range: " + "bytes " +
responseRangeExpected +
+ "` in multipart/byteranges response body not
found!",
+ responseBody.toString().contains("bytes " +
responseRangeExpected));
+ }
}
}
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 1e3c16f926..b006a5c18c 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -132,6 +132,10 @@
The previous fix for incosistent resource metadata during concurrent
reads and writes was incomplete. (markt)
</fix>
+ <fix>
+ <pr>780</pr>: Fix <code>content-range</code> header length. Submitted
+ by Justin Chen. (remm)
+ </fix>
</changelog>
</subsection>
<subsection name="Coyote">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]