Port fix for 37326. Ensure missing includes resources cause errors rather than being...
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Sat, 4 Aug 2007 18:13:04 +0000 (18:13 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Sat, 4 Aug 2007 18:13:04 +0000 (18:13 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@562751 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/jasper/servlet/JspServlet.java
webapps/docs/changelog.xml

index 028e3e9..c345d8e 100644 (file)
@@ -305,8 +305,25 @@ public class JspServlet extends HttpServlet implements PeriodicEventListener {
                     // Check if the requested JSP page exists, to avoid
                     // creating unnecessary directories and files.
                     if (null == context.getResource(jspUri)) {
-                        response.sendError(HttpServletResponse.SC_NOT_FOUND,
-                                           request.getRequestURI());
+                        String includeRequestUri = (String)
+                        request.getAttribute(
+                                "javax.servlet.include.request_uri");
+                        if (includeRequestUri != null) {
+                            // This file was included. Throw an exception as
+                            // a response.sendError() will be ignored
+                            throw new ServletException(Localizer.getMessage(
+                                    "jsp.error.file.not.found",jspUri));
+                        } else {
+                            try {
+                                response.sendError(
+                                        HttpServletResponse.SC_NOT_FOUND,
+                                        request.getRequestURI());
+                            } catch (IllegalStateException ise) {
+                                log.error(Localizer.getMessage(
+                                        "jsp.error.file.not.found",
+                                        jspUri));
+                            }
+                        }
                         return;
                     }
                     boolean isErrorPage = exception != null;
index 3e8601e..db2dda4 100644 (file)
       </fix>
     </changelog>
   </subsection>
+  <subsection name="Jasper">
+    <changelog>
+      <fix>
+        <bug>37326</bug>: No error reported when an included page does not
+        exist. (markt)
+      </fix>
+    </changelog>
+  </subsection>
   <subsection name="Webapps">
     <changelog>
       <fix>