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

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/8.5.x by this push:
     new 3f9950cd9c Align with 9.0.x onwards
3f9950cd9c is described below

commit 3f9950cd9caea493e1345c6ad2ce7e3b2da1a9fc
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Mon Jan 15 13:43:49 2024 +0000

    Align with 9.0.x onwards
---
 .../apache/catalina/ssi/ExpressionParseTree.java   |  2 +-
 .../catalina/ssi/ResponseIncludeWrapper.java       | 30 +++++-----------------
 .../catalina/ssi/SSIServletExternalResolver.java   |  3 ---
 3 files changed, 8 insertions(+), 27 deletions(-)

diff --git a/java/org/apache/catalina/ssi/ExpressionParseTree.java 
b/java/org/apache/catalina/ssi/ExpressionParseTree.java
index 1199f6b1f7..3c199787b1 100644
--- a/java/org/apache/catalina/ssi/ExpressionParseTree.java
+++ b/java/org/apache/catalina/ssi/ExpressionParseTree.java
@@ -404,7 +404,7 @@ public class ExpressionParseTree {
                         return -1;
                     }
                 } catch (PatternSyntaxException pse) {
-                    ssiMediator.log("Invalid expression: " + expr, pse);
+                    
ssiMediator.log(sm.getString("expressionParseTree.invalidExpression", expr), 
pse);
                     return 0;
                 }
             }
diff --git a/java/org/apache/catalina/ssi/ResponseIncludeWrapper.java 
b/java/org/apache/catalina/ssi/ResponseIncludeWrapper.java
index 1a59760f91..50cb5f09d7 100644
--- a/java/org/apache/catalina/ssi/ResponseIncludeWrapper.java
+++ b/java/org/apache/catalina/ssi/ResponseIncludeWrapper.java
@@ -19,16 +19,13 @@ package org.apache.catalina.ssi;
 import java.io.IOException;
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
 import java.util.Locale;
-import java.util.TimeZone;
 
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponseWrapper;
 
-import org.apache.tomcat.util.ExceptionUtils;
+import org.apache.tomcat.util.http.FastHttpDateFormat;
 
 /**
  * An HttpServletResponseWrapper, used from 
<code>SSIServletExternalResolver</code>
@@ -41,8 +38,6 @@ public class ResponseIncludeWrapper extends 
HttpServletResponseWrapper {
      * The names of some headers we want to capture.
      */
     private static final String LAST_MODIFIED = "last-modified";
-    private static final DateFormat RFC1123_FORMAT;
-    private static final String RFC1123_PATTERN = "EEE, dd MMM yyyy HH:mm:ss 
z";
 
     protected long lastModified = -1;
 
@@ -53,11 +48,6 @@ public class ResponseIncludeWrapper extends 
HttpServletResponseWrapper {
     protected ServletOutputStream servletOutputStream;
     protected PrintWriter printWriter;
 
-    static {
-        RFC1123_FORMAT = new SimpleDateFormat(RFC1123_PATTERN, Locale.US);
-        RFC1123_FORMAT.setTimeZone(TimeZone.getTimeZone("GMT"));
-    }
-
     /**
      * Initialize our wrapper with the current HttpServletResponse and 
ServletOutputStream.
      *
@@ -151,12 +141,9 @@ public class ResponseIncludeWrapper extends 
HttpServletResponseWrapper {
         super.addHeader(name, value);
         String lname = name.toLowerCase(Locale.ENGLISH);
         if (lname.equals(LAST_MODIFIED)) {
-            try {
-                synchronized (RFC1123_FORMAT) {
-                    lastModified = RFC1123_FORMAT.parse(value).getTime();
-                }
-            } catch (Throwable ignore) {
-                ExceptionUtils.handleThrowable(ignore);
+            long lastModified = FastHttpDateFormat.parseDate(value);
+            if (lastModified != -1) {
+                this.lastModified = lastModified;
             }
         }
     }
@@ -175,12 +162,9 @@ public class ResponseIncludeWrapper extends 
HttpServletResponseWrapper {
         super.setHeader(name, value);
         String lname = name.toLowerCase(Locale.ENGLISH);
         if (lname.equals(LAST_MODIFIED)) {
-            try {
-                synchronized (RFC1123_FORMAT) {
-                    lastModified = RFC1123_FORMAT.parse(value).getTime();
-                }
-            } catch (Throwable ignore) {
-                ExceptionUtils.handleThrowable(ignore);
+            long lastModified = FastHttpDateFormat.parseDate(value);
+            if (lastModified != -1) {
+                this.lastModified = lastModified;
             }
         }
     }
diff --git a/java/org/apache/catalina/ssi/SSIServletExternalResolver.java 
b/java/org/apache/catalina/ssi/SSIServletExternalResolver.java
index cbf2492490..67b1b02da1 100644
--- a/java/org/apache/catalina/ssi/SSIServletExternalResolver.java
+++ b/java/org/apache/catalina/ssi/SSIServletExternalResolver.java
@@ -410,9 +410,6 @@ public class SSIServletExternalResolver implements 
SSIExternalResolver {
         // ie: '/file1.shtml' vs '/appName1/file1.shtml'
         if (!isRootContext(normContext)) {
             String noContext = 
getPathWithoutContext(normContext.getContextPath(), normalized);
-            if (noContext == null) {
-                throw new IOException("Couldn't remove context from path: " + 
normalized);
-            }
             return new ServletContextAndPath(normContext, noContext);
         }
 


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

Reply via email to