When: * The following "build.xml" is used, simplified from that documented at https://tomcat.apache.org/tomcat-9.0-doc/api/org/apache/jasper/JspC.html : ``` <project name="Webapp Precompilation" default="all" basedir="."> <import file="/usr/share/tomcat9/bin/catalina-tasks.xml"/> <target name="jspc"> <jasper failOnError="false" validateXml="false" package="_jsp" uriroot="jsps" outputDir="output"/> </target> <target name="all" depends="jspc"></target> </project> ``` * Some JSP files are inside subdirectories within the "uriroot" ("jsps" in example) directory. * Ant is ran as "ant" (no arguments) from the same directory as the "build.xml" file and the "jsps" directory. Then, for each JSP file inside a subdirectory, Ant logs a FileNotFoundException, where the subdirectory of the JSP file is duplicated in the exception message. For example, if a JSP file is located at "jsps/foo/Bar.jsp", Ant logs "[jasper] SEVERE: org.apache.jasper.JasperException: java.io.FileNotFoundException: File [/foo/foo/Bar.jsp] not found". With the same example JSP file, empty directories are created at "output/_jsp/foo" and "output/_jsp/foo/foo". JSP files not in subdirectories of the "uriroot" work as expected (end up directly inside "output/_jsp"). This works properly in Tomcat 9.0.13.
*** This bug has been marked as a duplicate of bug 63056 ***