From bc64829cbe56420963f7d2ecec89ab0438343f4f Mon Sep 17 00:00:00 2001 From: markt Date: Sat, 4 Aug 2007 18:13:04 +0000 Subject: [PATCH] Port fix for 37326. Ensure missing includes resources cause errors rather than being silently ignored. 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 | 21 +++++++++++++++++++-- webapps/docs/changelog.xml | 8 ++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/java/org/apache/jasper/servlet/JspServlet.java b/java/org/apache/jasper/servlet/JspServlet.java index 028e3e94a..c345d8ea1 100644 --- a/java/org/apache/jasper/servlet/JspServlet.java +++ b/java/org/apache/jasper/servlet/JspServlet.java @@ -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; diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 3e8601e49..db2dda40f 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -32,6 +32,14 @@ + + + + 37326: No error reported when an included page does not + exist. (markt) + + + -- 2.11.0