You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by lu...@apache.org on 2003/05/01 04:35:21 UTC

cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler Collector.java ELFunctionMapper.java Generator.java Validator.java

luehe       2003/04/30 19:35:21

  Modified:    jasper2/src/share/org/apache/jasper/compiler Collector.java
                        ELFunctionMapper.java Generator.java Validator.java
  Log:
  Check for (attrs!=null) when enumerating tag attributes
  
  Revision  Changes    Path
  1.10      +3 -3      jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Collector.java
  
  Index: Collector.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Collector.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- Collector.java	14 Feb 2003 20:29:37 -0000	1.9
  +++ Collector.java	1 May 2003 02:35:20 -0000	1.10
  @@ -176,7 +176,7 @@
               if( n instanceof Node.CustomTag ) {
                   Node.CustomTag ct = (Node.CustomTag)n;
                   Node.JspAttribute[] attrs = ct.getJspAttributes();
  -                for (int i = 0; i < attrs.length; i++) {
  +                for (int i = 0; attrs != null && i < attrs.length; i++) {
                       if (attrs[i].isExpression()) {
                           scriptingElementSeen = true;
                           break;
  
  
  
  1.11      +1 -1      jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/ELFunctionMapper.java
  
  Index: ELFunctionMapper.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/ELFunctionMapper.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- ELFunctionMapper.java	9 Apr 2003 00:47:15 -0000	1.10
  +++ ELFunctionMapper.java	1 May 2003 02:35:20 -0000	1.11
  @@ -154,7 +154,7 @@
   
           public void visit(Node.CustomTag n) throws JasperException {
   	    Node.JspAttribute[] attrs = n.getJspAttributes();
  -	    for (int i = 0; i < attrs.length; i++) {
  +	    for (int i = 0; attrs != null && i < attrs.length; i++) {
   		doMap(attrs[i]);
   	    }
   	    visitBody(n);
  
  
  
  1.184     +4 -4      jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java
  
  Index: Generator.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java,v
  retrieving revision 1.183
  retrieving revision 1.184
  diff -u -r1.183 -r1.184
  --- Generator.java	25 Apr 2003 20:10:06 -0000	1.183
  +++ Generator.java	1 May 2003 02:35:20 -0000	1.184
  @@ -2531,7 +2531,7 @@
   	    }
   
   	    Node.JspAttribute[] attrs = n.getJspAttributes();
  -	    for (int i=0; i<attrs.length; i++) {
  +	    for (int i=0; attrs != null && i<attrs.length; i++) {
   		String attrValue = evaluateAttribute(handlerInfo, attrs[i],
   						n, tagHandlerVar);
   		
  
  
  
  1.104     +46 -27    jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Validator.java
  
  Index: Validator.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Validator.java,v
  retrieving revision 1.103
  retrieving revision 1.104
  diff -u -r1.103 -r1.104
  --- Validator.java	29 Apr 2003 19:54:06 -0000	1.103
  +++ Validator.java	1 May 2003 02:35:20 -0000	1.104
  @@ -150,7 +150,7 @@
   
   	    // JSP.2.10.1
   	    Attributes attrs = n.getAttributes();
  -	    for (int i = 0; i < attrs.getLength(); i++) {
  +	    for (int i = 0; attrs != null && i < attrs.getLength(); i++) {
   		String attr = attrs.getQName(i);
   		String value = attrs.getValue(i);
   
  @@ -287,7 +287,7 @@
               // This method does additional processing to collect page info
               
   	    Attributes attrs = n.getAttributes();
  -	    for (int i = 0; i < attrs.getLength(); i++) {
  +	    for (int i = 0; attrs != null && i < attrs.getLength(); i++) {
   		String attr = attrs.getQName(i);
   		String value = attrs.getValue(i);
   
  @@ -683,18 +683,20 @@
               }
   
   	    Attributes attrs = n.getAttributes();
  -	    int attrSize = attrs.getLength();
  -	    Node.JspAttribute[] jspAttrs = new Node.JspAttribute[attrSize];
  -	    for (int i=0; i < attrSize; i++) {
  -		jspAttrs[i] = getJspAttribute(attrs.getQName(i),
  -					      attrs.getURI(i),
  -					      attrs.getLocalName(i),
  -					      attrs.getValue(i),
  -					      java.lang.Object.class,
  -					      n,
  -					      false);
  +	    if (attrs != null) {
  +		int attrSize = attrs.getLength();
  +		Node.JspAttribute[] jspAttrs = new Node.JspAttribute[attrSize];
  +		for (int i=0; i < attrSize; i++) {
  +		    jspAttrs[i] = getJspAttribute(attrs.getQName(i),
  +						  attrs.getURI(i),
  +						  attrs.getLocalName(i),
  +						  attrs.getValue(i),
  +						  java.lang.Object.class,
  +						  n,
  +						  false);
  +		}
  +		n.setJspAttributes(jspAttrs);
   	    }
  -	    n.setJspAttributes(jspAttrs);
   
   	    visitBody(n);
           }
  @@ -727,10 +729,13 @@
   	    String customActionUri = n.getURI();
   	    Attributes attrs = n.getAttributes();
   	    for (int i=0; i<tldAttrs.length; i++) {
  -		String attr = attrs.getValue(tldAttrs[i].getName());
  -		if (attr == null) {
  -		    attr = attrs.getValue(customActionUri,
  -					  tldAttrs[i].getName());
  +		String attr = null;
  +		if (attrs != null) {
  +		    attr = attrs.getValue(tldAttrs[i].getName());
  +		    if (attr == null) {
  +			attr = attrs.getValue(customActionUri,
  +					      tldAttrs[i].getName());
  +		    }
   		}
   		Node.NamedAttribute na =
   			n.getNamedAttributeNode(tldAttrs[i].getName());
  @@ -746,12 +751,25 @@
   	    }
   
               Node.Nodes naNodes = n.getNamedAttributeNodes();
  -	    Node.JspAttribute[] jspAttrs
  -		= new Node.JspAttribute[attrs.getLength() + naNodes.size()];
  -	    Hashtable tagDataAttrs = new Hashtable(attrs.getLength());
  +	    int jspAttrsSize = naNodes.size();
  +	    if (attrs != null) {
  +		jspAttrsSize += attrs.getLength();
  +	    }
  +	    Node.JspAttribute[] jspAttrs = null;
  +	    if (jspAttrsSize > 0) {
  +		jspAttrs = new Node.JspAttribute[jspAttrsSize];
  +	    }
  +	    Hashtable tagDataAttrs = null;
  +	    if (attrs != null) {
  +		tagDataAttrs = new Hashtable(attrs.getLength());
  +	    } else {
  +		tagDataAttrs = new Hashtable(0);
  +	    }
   
   	    checkXmlAttributes(n, jspAttrs, tagDataAttrs);
  -            checkNamedAttributes(n, jspAttrs, attrs.getLength(), tagDataAttrs);
  +            checkNamedAttributes(n, jspAttrs,
  +				 (attrs!=null) ? attrs.getLength():0,
  +				 tagDataAttrs);
   
   	    TagData tagData = new TagData(tagDataAttrs);
   
  @@ -776,10 +794,11 @@
   	public void visit(Node.JspElement n) throws JasperException {
   
   	    Attributes attrs = n.getAttributes();
  -	    int xmlAttrLen = attrs.getLength();
  -	    if (xmlAttrLen == 0) {
  +	    if (attrs == null) {
   		err.jspError(n, "jsp.error.jspelement.missing.name");
   	    }
  +	    int xmlAttrLen = attrs.getLength();
  +
               Node.Nodes namedAttrs = n.getNamedAttributeNodes();
   
   	    // XML-style 'name' attribute, which is mandatory, must not be
  @@ -909,7 +928,7 @@
   	    TagAttributeInfo[] tldAttrs = tagInfo.getAttributes();
   	    Attributes attrs = n.getAttributes();
   
  -	    for (int i=0; i<attrs.getLength(); i++) {
  +	    for (int i=0; attrs != null && i<attrs.getLength(); i++) {
   		boolean found = false;
   		for (int j=0; tldAttrs != null && j<tldAttrs.length; j++) {
   		    if (attrs.getLocalName(i).equals(tldAttrs[j].getName())
  
  
  

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