You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2010/02/02 11:08:24 UTC
svn commit: r905563 - in
/tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler: Generator.java
ScriptingVariabler.java
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org