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