kinman 2004/02/25 16:19:02 Modified: jasper2/src/share/org/apache/jasper/compiler PageInfo.java Parser.java jasper2/src/share/org/apache/jasper/resources messages.properties Log: - According to the spec, it is a fatal error for the taglib directive to appear after actions using the prefix introduced by it. Revision Changes Path 1.40 +13 -3 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/PageInfo.java Index: PageInfo.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/PageInfo.java,v retrieving revision 1.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 --- PageInfo.java 14 Aug 2003 21:16:52 -0000 1.39 +++ PageInfo.java 26 Feb 2004 00:19:01 -0000 1.40 @@ -81,6 +81,7 @@ private HashMap taglibsMap; private HashMap jspPrefixMapper; private HashMap xmlPrefixMapper; + private HashMap nonCustomTagPrefixMap; private String defaultLanguage = "java"; private String language; private String defaultExtends = Constants.JSP_SERVLET_BASE; @@ -125,6 +126,7 @@ this.taglibsMap = new HashMap(); this.jspPrefixMapper = new HashMap(); this.xmlPrefixMapper = new HashMap(); + this.nonCustomTagPrefixMap = new HashMap(); this.imports = new Vector(); this.dependants = new Vector(); this.includePrelude = new Vector(); @@ -656,5 +658,13 @@ public boolean isELIgnored() { return isELIgnored; + } + + public void putNonCustomTagPrefix(String prefix, Mark where) { + nonCustomTagPrefixMap.put(prefix, where); + } + + public Mark getNonCustomTagPrefix(String prefix) { + return (Mark) nonCustomTagPrefixMap.get(prefix); } } 1.88 +10 -3 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Parser.java Index: Parser.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Parser.java,v retrieving revision 1.87 retrieving revision 1.88 diff -u -r1.87 -r1.88 --- Parser.java 15 Dec 2003 19:24:20 -0000 1.87 +++ Parser.java 26 Feb 2004 00:19:01 -0000 1.88 @@ -447,6 +447,11 @@ String uri = attrs.getValue("uri"); String prefix = attrs.getValue("prefix"); if (prefix != null) { + Mark prevMark = pageInfo.getNonCustomTagPrefix(prefix); + if (prevMark != null) { + err.jspError(reader.mark(), "jsp.error.prefix.use_before_dcl", + prefix, prevMark.getFile(), "" + prevMark.getLineNumber()); + } if (uri != null) { String uriPrev = pageInfo.getURI(prefix); if (uriPrev != null && !uriPrev.equals(uri)) { @@ -1336,6 +1341,8 @@ String uri = pageInfo.getURI(prefix); if (uri == null) { reader.reset(start); + // Remember the prefix for later error checking + pageInfo.putNonCustomTagPrefix(prefix, reader.mark()); return false; } 1.141 +2 -1 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages.properties Index: messages.properties =================================================================== RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages.properties,v retrieving revision 1.140 retrieving revision 1.141 diff -u -r1.140 -r1.141 --- messages.properties 18 Feb 2004 21:22:21 -0000 1.140 +++ messages.properties 26 Feb 2004 00:19:01 -0000 1.141 @@ -405,3 +405,4 @@ jsp.error.nested_jsproot=Nested <jsp:root> jsp.error.unbalanced.endtag=The end tag \"</{0}\" is unbalanced jsp.error.invalid.bean=The value for the useBean class attribute {0} is invalid. +jsp.error.prefix.use_before_dcl=The prefix {0} specified in this tag directive has been previously used by an action in file {1} line {2}.
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]