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

remm 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 7bceeb850b Simplify
7bceeb850b is described below

commit 7bceeb850bbcfc82a7002047aabed5c254acbf9a
Author: remm <r...@apache.org>
AuthorDate: Wed Dec 11 17:25:58 2024 +0100

    Simplify
---
 .../apache/catalina/servlets/DefaultServlet.java   | 73 ++--------------------
 1 file changed, 6 insertions(+), 67 deletions(-)

diff --git a/java/org/apache/catalina/servlets/DefaultServlet.java 
b/java/org/apache/catalina/servlets/DefaultServlet.java
index 8df42fbf15..2b4b7e4145 100644
--- a/java/org/apache/catalina/servlets/DefaultServlet.java
+++ b/java/org/apache/catalina/servlets/DefaultServlet.java
@@ -749,72 +749,8 @@ public class DefaultServlet extends HttpServlet {
      */
     protected boolean checkIfHeaders(HttpServletRequest request, 
HttpServletResponse response, WebResource resource)
             throws IOException {
-        String ifNoneMatchHeader = request.getHeader("If-None-Match");
-
-        // RFC9110 #13.3.2 defines preconditions evaluation order
-        int next = 1;
-        while (true) {
-            switch (next) {
-                case 1:
-                    if (request.getHeader("If-Match") != null) {
-                        if (checkIfMatch(request, response, resource)) {
-                            next = 3;
-                        } else {
-                            return false;
-                        }
-                    } else {
-                        next = 2;
-                    }
-                    break;
-                case 2:
-                    if (request.getHeader("If-Unmodified-Since") != null) {
-                        if (checkIfUnmodifiedSince(request, response, 
resource)) {
-                            next = 3;
-                        } else {
-                            return false;
-                        }
-                    } else {
-                        next = 3;
-                    }
-                    break;
-                case 3:
-                    if (ifNoneMatchHeader != null) {
-                        if (checkIfNoneMatch(request, response, resource)) {
-                            next = 5;
-                        } else {
-                            return false;
-                        }
-                    } else {
-                        next = 4;
-                    }
-                    break;
-                case 4:
-                    if (("GET".equals(request.getMethod()) || 
"HEAD".equals(request.getMethod())) &&
-                            ifNoneMatchHeader == null && 
request.getHeader("If-Modified-Since") != null) {
-                        if (checkIfModifiedSince(request, response, resource)) 
{
-                            next = 5;
-                        } else {
-                            return false;
-                        }
-                    } else {
-                        next = 5;
-                    }
-                    break;
-                case 5:
-                    if ("GET".equals(request.getMethod()) && 
request.getHeader("If-Range") != null &&
-                            request.getHeader("Range") != null) {
-                        if (checkIfRange(request, response, resource) && 
determineRangeRequestsApplicable(resource)) {
-                            // Partial content, precondition passed
-                            return true;
-                        } else {
-                            // ignore the Range header field
-                            return true;
-                        }
-                    } else {
-                        return true;
-                    }
-            }
-        }
+        return checkIfMatch(request, response, resource) && 
checkIfModifiedSince(request, response, resource) &&
+                checkIfNoneMatch(request, response, resource) && 
checkIfUnmodifiedSince(request, response, resource);
     }
 
 
@@ -2271,6 +2207,10 @@ public class DefaultServlet extends HttpServlet {
     protected boolean checkIfModifiedSince(HttpServletRequest request, 
HttpServletResponse response,
             WebResource resource) {
 
+        String method = request.getMethod();
+        if (!"GET".equals(method) && !"HEAD".equals(method)) {
+            return true;
+        }
         long resourceLastModified = resource.getLastModified();
 
         try {
@@ -2284,7 +2224,6 @@ public class DefaultServlet extends HttpServlet {
                     // specified by the client. This is not an error case.
                     response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
                     response.setHeader("ETag", generateETag(resource));
-
                     return false;
                 }
             }


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to