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 2002/10/17 23:38:57 UTC
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler Generator.java Node.java Parser.java TagLibraryInfoImpl.java Validator.java
luehe 2002/10/17 14:38:56
Modified: jasper2/src/share/org/apache/jasper/compiler Generator.java
Node.java Parser.java TagLibraryInfoImpl.java
Validator.java
Log:
Check for null before enumerating over array returned by TagInfo.getAttributes() and TagInfo.getTagVariableInfos() (see Bugzilla 13619).
Revision Changes Path
1.111 +5 -8 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.110
retrieving revision 1.111
diff -u -r1.110 -r1.111
--- Generator.java 17 Oct 2002 20:43:06 -0000 1.110
+++ Generator.java 17 Oct 2002 21:38:56 -0000 1.111
@@ -2109,9 +2109,6 @@
String tagHandlerVar,
String tagEvalVar) {
- VariableInfo[] varInfos = n.getVariableInfos();
- TagVariableInfo[] tagVarInfos = n.getTagVariableInfos();
-
if (n.getBody() != null) {
if (n.implementsIterationTag()) {
out.printin("int evalDoAfterBody = ");
@@ -3081,8 +3078,8 @@
out.printil( "// Sync up variables with caller's page context:" );
TagVariableInfo[] tagVariableInfo = tagInfo.getTagVariableInfos();
-
- for( int i = 0; i < tagVariableInfo.length; i++ ) {
+ for( int i = 0; tagVariableInfo != null
+ && i < tagVariableInfo.length; i++ ) {
// XXX - Spec bug: Note, we don't know the value of
// this attribute at translation time, because we're defining
// the tag, and we don't know how page authors will call it.
1.35 +4 -4 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.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- Node.java 17 Oct 2002 20:43:06 -0000 1.34
+++ Node.java 17 Oct 2002 21:38:56 -0000 1.35
@@ -1183,7 +1183,7 @@
boolean result = false;
TagAttributeInfo[] attributes = tagInfo.getAttributes();
- for (int i = 0; i < attributes.length; i++) {
+ for (int i = 0; attributes != null && i < attributes.length; i++) {
if (attributes[i].getName().equals(name) &&
attributes[i].isFragment()) {
result = true;
1.35 +4 -4 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Parser.java
Index: Parser.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Parser.java,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- Parser.java 17 Oct 2002 20:43:06 -0000 1.34
+++ Parser.java 17 Oct 2002 21:38:56 -0000 1.35
@@ -1718,7 +1718,7 @@
if (n instanceof Node.CustomTag) {
TagInfo tagInfo = ((Node.CustomTag)n).getTagInfo();
TagAttributeInfo[] tldAttrs = tagInfo.getAttributes();
- for (int i=0; i<tldAttrs.length; i++) {
+ for (int i=0; tldAttrs != null && i<tldAttrs.length; i++) {
if (name.equals(tldAttrs[i].getName())) {
if (tldAttrs[i].isFragment()) {
return TagInfo.BODY_CONTENT_SCRIPTLESS;
1.20 +15 -10 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/TagLibraryInfoImpl.java
Index: TagLibraryInfoImpl.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/TagLibraryInfoImpl.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- TagLibraryInfoImpl.java 17 Oct 2002 20:43:06 -0000 1.19
+++ TagLibraryInfoImpl.java 17 Oct 2002 21:38:56 -0000 1.20
@@ -372,13 +372,18 @@
);
}
}
- TagAttributeInfo[] tagAttributeInfo
- = new TagAttributeInfo[attributeVector.size()];
- attributeVector.copyInto(tagAttributeInfo);
- TagVariableInfo[] tagVariableInfos
- = new TagVariableInfo[variableVector.size()];
- variableVector.copyInto(tagVariableInfos);
+ TagAttributeInfo[] tagAttributeInfo = null;
+ if (attributeVector.size() > 0) {
+ tagAttributeInfo = new TagAttributeInfo[attributeVector.size()];
+ attributeVector.copyInto(tagAttributeInfo);
+ }
+
+ TagVariableInfo[] tagVariableInfos = null;
+ if (variableVector.size() > 0) {
+ tagVariableInfos = new TagVariableInfo[variableVector.size()];
+ variableVector.copyInto(tagVariableInfos);
+ }
TagExtraInfo tei = null;
if (teiclass != null && !teiclass.equals("")) {
1.44 +4 -4 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.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- Validator.java 17 Oct 2002 20:43:06 -0000 1.43
+++ Validator.java 17 Oct 2002 21:38:56 -0000 1.44
@@ -662,7 +662,7 @@
*/
TagAttributeInfo[] tldAttrs = tagInfo.getAttributes();
Attributes attrs = n.getAttributes();
- for (int i=0; i<tldAttrs.length; i++) {
+ for (int i=0; tldAttrs != null && i<tldAttrs.length; i++) {
String attr = attrs.getValue(tldAttrs[i].getName());
Node.NamedAttribute jspAttr =
n.getNamedAttributeNode(tldAttrs[i].getName());
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>