This is an automated email from the ASF dual-hosted git repository.

remm 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 382872c6d3 Fix content-range header length
382872c6d3 is described below

commit 382872c6d317128f1f4f64eb34ef2b0c27ff6b4a
Author: remm <r...@apache.org>
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 3a1d54347b..f9985f5a03 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -140,6 +140,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: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to