kinman 2004/02/09 15:12:57 Modified: jasper2/src/share/org/apache/jasper/compiler ParserController.java Log: - Fix bugzilla 26796: <%@ include %> fails when tag files are referenced in a tag directives. Revision Changes Path 1.50 +20 -15 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/ParserController.java Index: ParserController.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/ParserController.java,v retrieving revision 1.49 retrieving revision 1.50 diff -u -r1.49 -r1.50 --- ParserController.java 3 Jan 2004 12:12:21 -0000 1.49 +++ ParserController.java 9 Feb 2004 23:12:57 -0000 1.50 @@ -134,8 +134,9 @@ // (using an include directive), ctxt.getTagFileJar() returns the // JAR file from which to read the tag file or included resource, // respectively. - return parse(inFileName, null, ctxt.isTagFile(), false, - ctxt.getTagFileJarUrl()); + isTagFile = ctxt.isTagFile(); + directiveOnly = false; + return doParse(inFileName, null, ctxt.getTagFileJarUrl()); } /** @@ -149,8 +150,9 @@ public Node.Nodes parse(String inFileName, Node parent, URL jarFileUrl) throws FileNotFoundException, JasperException, IOException { - // For files statically included, keep isTagfile and directiveOnly - return parse(inFileName, parent, isTagFile, directiveOnly, jarFileUrl); + // For files that are statically included, isTagfile and directiveOnly + // remain unchanged. + return doParse(inFileName, parent, jarFileUrl); } /** @@ -163,8 +165,15 @@ */ public Node.Nodes parseTagFileDirectives(String inFileName) throws FileNotFoundException, JasperException, IOException { - return parse(inFileName, null, true, true, - (URL) ctxt.getTagFileJarUrls().get(inFileName)); + boolean isTagFileSave = isTagFile; + boolean directiveOnlySave = directiveOnly; + isTagFile = true; + directiveOnly = true; + Node.Nodes page = doParse(inFileName, null, + (URL) ctxt.getTagFileJarUrls().get(inFileName)); + directiveOnly = directiveOnlySave; + isTagFile = isTagFileSave; + return page; } /** @@ -181,18 +190,14 @@ * @param jarFile The JAR file from which to read the JSP page or tag file, * or null if the JSP page or tag file is to be read from the filesystem */ - private Node.Nodes parse(String inFileName, - Node parent, - boolean isTagFile, - boolean directivesOnly, - URL jarFileUrl) + private Node.Nodes doParse(String inFileName, + Node parent, + URL jarFileUrl) throws FileNotFoundException, JasperException, IOException { Node.Nodes parsedPage = null; isEncodingSpecifiedInProlog = false; isDefaultPageEncoding = false; - this.isTagFile = isTagFile; - this.directiveOnly = directivesOnly; JarFile jarFile = getJarFile(jarFileUrl); String absFileName = resolveFileName(inFileName); @@ -229,7 +234,7 @@ try { parsedPage = JspDocumentParser.parse(this, absFileName, jarFile, parent, - isTagFile, directivesOnly, + isTagFile, directiveOnly, sourceEnc, jspConfigPageEnc, isEncodingSpecifiedInProlog); @@ -251,7 +256,7 @@ sourceEnc, inStreamReader, err); parsedPage = Parser.parse(this, jspReader, parent, isTagFile, - directivesOnly, jarFileUrl, + directiveOnly, jarFileUrl, sourceEnc, jspConfigPageEnc, isDefaultPageEncoding); } finally {
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]