tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kin...@apache.org
Subject cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler Node.java PageDataImpl.java
Date Wed, 24 Apr 2002 21:12:53 GMT
kinman      02/04/24 14:12:53

  Modified:    jasper2/src/share/org/apache/jasper/compiler Node.java
                        PageDataImpl.java
  Log:
  - Removed the static field in Node.java, because it is not thread safe.
    Instead rely on traversing the nodes to find the page root.
  
  Revision  Changes    Path
  1.7       +20 -35    jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Node.java
  
  Index: Node.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Node.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Node.java	19 Apr 2002 20:35:01 -0000	1.6
  +++ Node.java	24 Apr 2002 21:12:52 -0000	1.7
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Node.java,v
1.6 2002/04/19 20:35:01 kinman Exp $
  - * $Revision: 1.6 $
  - * $Date: 2002/04/19 20:35:01 $
  + * $Header: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Node.java,v
1.7 2002/04/24 21:12:52 kinman Exp $
  + * $Revision: 1.7 $
  + * $Date: 2002/04/24 21:12:52 $
    *
    * ====================================================================
    * 
  @@ -85,11 +85,6 @@
       protected Node parent;
   
       /**
  -     * The root node of this page.
  -     */
  -    private static Root currentRoot;
  -
  -    /**
        * Constructor.
        * @param start The location of the jsp page
        * @param parent The enclosing node
  @@ -155,10 +150,6 @@
   	return parent;
       }
   
  -    public Node getCurrentRoot() {
  -	return currentRoot;
  -    }
  -
       public int getBeginJavaLine() {
   	return beginJavaLine;
       }
  @@ -176,25 +167,17 @@
       }
   
       /**
  -     * Warning: This method is valid only when used from the correct context,
  -     * namely when the Root node for the current page has been visited first,
  -     * and the proper bookkeeping (<tt>pushCurrentRoot/popCurrentRoot</tt>)
  -     * has been performed.
  -     *
        * @return true if the current page is in xml syntax, false otherwise.
        */
       public boolean isXmlSyntax() {
  -	return currentRoot.isXmlSyntax();
  -    }
  -
  -    public static void pushCurrentRoot(Root root) {
  -	root.setParentRoot(currentRoot);
  -	currentRoot = root;
  -    }
  +	Node r = this;
  +	while (!(r instanceof Node.Root)) {
  +	    r = r.getParent();
  +	    if (r == null)
  +		return false;
  +	}
   
  -    public static Root popCurrentRoot() {
  -	currentRoot = currentRoot.getParentRoot();
  -	return currentRoot;
  +	return r.isXmlSyntax();
       }
   
       /**
  @@ -237,6 +220,12 @@
   
   	Root(Attributes attrs, Mark start, Node parent) {
   	    super(attrs, start, parent);
  +
  +	    // Figure out and set the parent root
  +	    Node r = parent;
  +	    while ((r != null) && !(r instanceof Node.Root))
  +		r = r.getParent();
  +	    parentRoot = (Node.Root) r;
   	}
   
   	public void accept(Visitor v) throws JasperException {
  @@ -247,13 +236,13 @@
   	    return false;
   	}
   
  +	/**
  +	 * @ return The enclosing root to this root.  Usually represents the
  +	 * page that includes this one.
  +	 */
   	public Root getParentRoot() {
   	    return parentRoot;
   	}
  -
  -	public void setParentRoot(Root root) {
  -	    parentRoot = root;
  -	}
       }
       
       /**
  @@ -860,17 +849,13 @@
   	}
   
   	public void visit(Root n) throws JasperException {
  -	    Node.pushCurrentRoot(n);
   	    doVisit(n);
   	    visitBody(n);
  -	    Node.popCurrentRoot();
   	}
   
   	public void visit(JspRoot n) throws JasperException {
  -	    Node.pushCurrentRoot(n);
   	    doVisit(n);
   	    visitBody(n);
  -	    Node.popCurrentRoot();
   	}
   
   	public void visit(PageDirective n) throws JasperException {
  
  
  
  1.2       +4 -9      jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/PageDataImpl.java
  
  Index: PageDataImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/PageDataImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PageDataImpl.java	28 Mar 2002 18:46:16 -0000	1.1
  +++ PageDataImpl.java	24 Apr 2002 21:12:52 -0000	1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/PageDataImpl.java,v
1.1 2002/03/28 18:46:16 kinman Exp $
  - * $Revision: 1.1 $
  - * $Date: 2002/03/28 18:46:16 $
  + * $Header: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/PageDataImpl.java,v
1.2 2002/04/24 21:12:52 kinman Exp $
  + * $Revision: 1.2 $
  + * $Date: 2002/04/24 21:12:52 $
    *
    * ====================================================================
    * 
  @@ -184,7 +184,6 @@
   	}
   
   	public void visit(Node.JspRoot n) throws JasperException {
  -	    Node.pushCurrentRoot(n);
   	    Attributes attrs = n.getAttributes();
   	    if (attrs == null) {
   		throw new JasperException("Missing attributes in jsp:root");
  @@ -203,7 +202,7 @@
   				       attrs.getValue(i));
   	    }
   	    visitBody(n);
  -	    if (Node.popCurrentRoot() == this.root) {
  +	    if (n == this.root) {
   		// top-level jsp:root element
   		root.setAttributes(rootAttrs);
   	    }
  @@ -249,9 +248,7 @@
   	 * Visits root node of JSP page in JSP syntax.
   	 */
   	public void visit(Node.Root n) throws JasperException {
  -	    Node.pushCurrentRoot(n);
   	    appendTag(JSP_ROOT_TAG, n.getAttributes(), n.getBody());
  -	    Node.popCurrentRoot();
   	}
   
   	/*
  @@ -261,14 +258,12 @@
   	 * include directive) are ignored.
   	 */
   	public void visit(Node.JspRoot n) throws JasperException {
  -	    Node.pushCurrentRoot(n);
   	    if (n == this.root) {
   		// top-level jsp:root element
   		appendTag(JSP_ROOT_TAG, n.getAttributes(), n.getBody());
   	    } else {
   		visitBody(n);
   	    }
  -	    Node.popCurrentRoot();
   	}
   
   	public void visit(Node.PageDirective n) throws JasperException {
  
  
  

--
To unsubscribe, e-mail:   <mailto:tomcat-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:tomcat-dev-help@jakarta.apache.org>


Mime
View raw message