Author: markt Date: Tue Feb 2 10:08:23 2010 New Revision: 905563 URL: http://svn.apache.org/viewvc?rev=905563&view=rev Log: Revert r905558 & r905560. Wrong repo. Sorry for the noise.
Modified: tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Generator.java tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/ScriptingVariabler.java Modified: tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Generator.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Generator.java?rev=905563&r1=905562&r2=905563&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Generator.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/Generator.java Tue Feb 2 10:08:23 2010 @@ -167,26 +167,6 @@ return b.toString(); } - /** - * Finds the <jsp:body> subelement of the given parent node. If not - * found, null is returned. - */ - protected static Node.JspBody findJspBody(Node parent) { - Node.JspBody result = null; - - Node.Nodes subelements = parent.getBody(); - for (int i = 0; (subelements != null) && (i < subelements.size()); i++) { - Node n = subelements.getNode(i); - if (n instanceof Node.JspBody) { - result = (Node.JspBody) n; - break; - } - } - - return result; - } - - private String createJspId() throws JasperException { if (this.jspIdPrefix == null) { StringBuffer sb = new StringBuffer(32); @@ -998,6 +978,25 @@ } } + /** + * Finds the <jsp:body> subelement of the given parent node. If not + * found, null is returned. + */ + private Node.JspBody findJspBody(Node parent) throws JasperException { + Node.JspBody result = null; + + Node.Nodes subelements = parent.getBody(); + for (int i = 0; (subelements != null) && (i < subelements.size()); i++) { + Node n = subelements.getNode(i); + if (n instanceof Node.JspBody) { + result = (Node.JspBody) n; + break; + } + } + + return result; + } + public void visit(Node.ForwardAction n) throws JasperException { Node.JspAttribute page = n.getPage(); Modified: tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/ScriptingVariabler.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/ScriptingVariabler.java?rev=905563&r1=905562&r2=905563&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/ScriptingVariabler.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/ScriptingVariabler.java Tue Feb 2 10:08:23 2010 @@ -38,17 +38,17 @@ */ static class CustomTagCounter extends Node.Visitor { - private int count; - private Node.CustomTag parent; + private int count; + private Node.CustomTag parent; - public void visit(Node.CustomTag n) throws JasperException { - n.setCustomTagParent(parent); - Node.CustomTag tmpParent = parent; - parent = n; - visitBody(n); - parent = tmpParent; - n.setNumCount(new Integer(count++)); - } + public void visit(Node.CustomTag n) throws JasperException { + n.setCustomTagParent(parent); + Node.CustomTag tmpParent = parent; + parent = n; + visitBody(n); + parent = tmpParent; + n.setNumCount(new Integer(count++)); + } } /* @@ -57,114 +57,92 @@ */ static class ScriptingVariableVisitor extends Node.Visitor { - private ErrorDispatcher err; - private Hashtable scriptVars; - - public ScriptingVariableVisitor(ErrorDispatcher err) { - this.err = err; - scriptVars = new Hashtable(); - } - - public void visit(Node.CustomTag n) throws JasperException { - setScriptingVars(n, VariableInfo.AT_BEGIN); - setScriptingVars(n, VariableInfo.NESTED); - visitBody(n); - setScriptingVars(n, VariableInfo.AT_END); - } - - private void setScriptingVars(Node.CustomTag n, int scope) - throws JasperException { - - TagVariableInfo[] tagVarInfos = n.getTagVariableInfos(); - VariableInfo[] varInfos = n.getVariableInfos(); - if (tagVarInfos.length == 0 && varInfos.length == 0) { - return; - } - - Vector vec = new Vector(); - - Integer ownRange = null; - Node.CustomTag parent = n.getCustomTagParent(); - if (scope == VariableInfo.AT_BEGIN - || scope == VariableInfo.AT_END) { - if (parent == null) - ownRange = MAX_SCOPE; - else - ownRange = parent.getNumCount(); - } else { - // NESTED - ownRange = n.getNumCount(); - } - - if (varInfos.length > 0) { - for (int i=0; i<varInfos.length; i++) { - if (varInfos[i].getScope() != scope - || !varInfos[i].getDeclare()) { - continue; - } - String varName = varInfos[i].getVarName(); - - Integer currentRange = (Integer) scriptVars.get(varName); - // If a fragment helper has been used for the parent tag - // the scripting variables always need to be declared - if (currentRange == null || - ownRange.compareTo(currentRange) > 0 || - parent != null && isImplemetedAsFragment(parent)) { - scriptVars.put(varName, ownRange); - vec.add(varInfos[i]); - } - } - } else { - for (int i=0; i<tagVarInfos.length; i++) { - if (tagVarInfos[i].getScope() != scope - || !tagVarInfos[i].getDeclare()) { - continue; - } - String varName = tagVarInfos[i].getNameGiven(); - if (varName == null) { - varName = n.getTagData().getAttributeString( - tagVarInfos[i].getNameFromAttribute()); - if (varName == null) { - err.jspError(n, "jsp.error.scripting.variable.missing_name", - tagVarInfos[i].getNameFromAttribute()); - } - } - - Integer currentRange = (Integer) scriptVars.get(varName); - // If a fragment helper has been used for the parent tag - // the scripting variables always need to be declared - if (currentRange == null || - ownRange.compareTo(currentRange) > 0 || - parent != null && isImplemetedAsFragment(parent)) { - scriptVars.put(varName, ownRange); - vec.add(varInfos[i]); - } - } - } + private ErrorDispatcher err; + private Hashtable scriptVars; + + public ScriptingVariableVisitor(ErrorDispatcher err) { + this.err = err; + scriptVars = new Hashtable(); + } + + public void visit(Node.CustomTag n) throws JasperException { + setScriptingVars(n, VariableInfo.AT_BEGIN); + setScriptingVars(n, VariableInfo.NESTED); + new ScriptingVariableVisitor(err).visitBody(n); + setScriptingVars(n, VariableInfo.AT_END); + } + + private void setScriptingVars(Node.CustomTag n, int scope) + throws JasperException { + + TagVariableInfo[] tagVarInfos = n.getTagVariableInfos(); + VariableInfo[] varInfos = n.getVariableInfos(); + if (tagVarInfos.length == 0 && varInfos.length == 0) { + return; + } + + Vector vec = new Vector(); + + Integer ownRange = null; + if (scope == VariableInfo.AT_BEGIN + || scope == VariableInfo.AT_END) { + Node.CustomTag parent = n.getCustomTagParent(); + if (parent == null) + ownRange = MAX_SCOPE; + else + ownRange = parent.getNumCount(); + } else { + // NESTED + ownRange = n.getNumCount(); + } + + if (varInfos.length > 0) { + for (int i=0; i<varInfos.length; i++) { + if (varInfos[i].getScope() != scope + || !varInfos[i].getDeclare()) { + continue; + } + String varName = varInfos[i].getVarName(); + + Integer currentRange = (Integer) scriptVars.get(varName); + if (currentRange == null + || ownRange.compareTo(currentRange) > 0) { + scriptVars.put(varName, ownRange); + vec.add(varInfos[i]); + } + } + } else { + for (int i=0; i<tagVarInfos.length; i++) { + if (tagVarInfos[i].getScope() != scope + || !tagVarInfos[i].getDeclare()) { + continue; + } + String varName = tagVarInfos[i].getNameGiven(); + if (varName == null) { + varName = n.getTagData().getAttributeString( + tagVarInfos[i].getNameFromAttribute()); + if (varName == null) { + err.jspError(n, "jsp.error.scripting.variable.missing_name", + tagVarInfos[i].getNameFromAttribute()); + } + } + + Integer currentRange = (Integer) scriptVars.get(varName); + if (currentRange == null + || ownRange.compareTo(currentRange) > 0) { + scriptVars.put(varName, ownRange); + vec.add(tagVarInfos[i]); + } + } + } - n.setScriptingVars(vec, scope); - } + n.setScriptingVars(vec, scope); + } } - private static boolean isImplemetedAsFragment(Node.CustomTag n) { - // Replicates logic from Generator to determine if a fragment - // helper will be used - if (n.implementsSimpleTag()) { - if (Generator.findJspBody(n) == null) { - if (!n.hasEmptyBody()) { - return true; - } - return false; - } - return true; - } - return false; - } - - public static void set(Node.Nodes page, ErrorDispatcher err) - throws JasperException { - page.visit(new CustomTagCounter()); - page.visit(new ScriptingVariableVisitor(err)); + throws JasperException { + page.visit(new CustomTagCounter()); + page.visit(new ScriptingVariableVisitor(err)); } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org