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 65f96827c5 Simplify
65f96827c5 is described below

commit 65f96827c5feefcc7b8e69c3e952529aaf880260
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 3eb08428d1..260a767d12 100644
--- a/java/org/apache/catalina/servlets/DefaultServlet.java
+++ b/java/org/apache/catalina/servlets/DefaultServlet.java
@@ -726,72 +726,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);
     }
 
 
@@ -2197,6 +2133,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 {
@@ -2210,7 +2150,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