[ http://issues.apache.org/jira/browse/JELLY-177?page=all ]
dion gillard updated JELLY-177: ------------------------------- Fix Version: 1.0.1 (was: 1.0-RC2) Description: In JellyServlet, the procedure used to determine the script's location is too simplistic; it misses simple cases like the a *.jelly servlet-mapping. I suggest replacing the getScript method with something like (taken in part from the Freemarker servlet): protected URL getScript(HttpServletRequest req) throws MalformedURLException { String scriptUrl = null; String includedPath = (String) req.getAttribute("javax.servlet.include.servlet_path"); if (includedPath != null) { //This is the result of a RequestDispatcher include... String includedPathInfo = (String) req.getAttribute("javax.servlet.include.path_info"); if (includedPathInfo != null) { scriptUrl = includedPathInfo; } else { scriptUrl = includedPath; } } else { scriptUrl = req.getParameter("script"); if (scriptUrl == null) { scriptUrl = req.getPathInfo(); } if (scriptUrl == null) { scriptUrl = req.getServletPath(); } } URL url = getServletContext().getResource(scriptUrl); if (url == null) { throw new IllegalArgumentException("Invalid script url:" + scriptUrl); } return url; } was: In JellyServlet, the procedure used to determine the script's location is too simplistic; it misses simple cases like the a *.jelly servlet-mapping. I suggest replacing the getScript method with something like (taken in part from the Freemarker servlet): protected URL getScript(HttpServletRequest req) throws MalformedURLException { String scriptUrl = null; String includedPath = (String) req.getAttribute("javax.servlet.include.servlet_path"); if (includedPath != null) { //This is the result of a RequestDispatcher include... String includedPathInfo = (String) req.getAttribute("javax.servlet.include.path_info"); if (includedPathInfo != null) { scriptUrl = includedPathInfo; } else { scriptUrl = includedPath; } } else { scriptUrl = req.getParameter("script"); if (scriptUrl == null) { scriptUrl = req.getPathInfo(); } if (scriptUrl == null) { scriptUrl = req.getServletPath(); } } URL url = getServletContext().getResource(scriptUrl); if (url == null) { throw new IllegalArgumentException("Invalid script url:" + scriptUrl); } return url; } > In JellyServlet, the procedure used to determine the script's location is too > simplistic > ---------------------------------------------------------------------------------------- > > Key: JELLY-177 > URL: http://issues.apache.org/jira/browse/JELLY-177 > Project: jelly > Type: Bug > Components: core / taglib.core > Versions: 1.0-beta-5, 1.0-RC1 > Environment: Servlet, 1.0RC1 > Reporter: Denis Robert > Priority: Minor > Fix For: 1.0.1 > > In JellyServlet, the procedure used to determine the script's location is too > simplistic; it misses simple cases like the a *.jelly servlet-mapping. > I suggest replacing the getScript method with something like (taken in part > from the Freemarker servlet): > protected URL getScript(HttpServletRequest req) > throws MalformedURLException { > String scriptUrl = null; > > String includedPath = (String) > req.getAttribute("javax.servlet.include.servlet_path"); > if (includedPath != null) { //This is the result of a > RequestDispatcher include... > String includedPathInfo = (String) > req.getAttribute("javax.servlet.include.path_info"); > if (includedPathInfo != null) { > scriptUrl = includedPathInfo; > } else { > scriptUrl = includedPath; > } > } else { > scriptUrl = req.getParameter("script"); > if (scriptUrl == null) { > scriptUrl = req.getPathInfo(); > } > if (scriptUrl == null) { > scriptUrl = req.getServletPath(); > } > } > > URL url = getServletContext().getResource(scriptUrl); > if (url == null) { > throw new IllegalArgumentException("Invalid script url:" > + scriptUrl); > } > return url; > } -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]