tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Roth <Mark.R...@Sun.COM>
Subject Re: cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler Generator.java
Date Mon, 02 Feb 2004 22:11:53 GMT
Hi Kin-Man,

I'm just about to look into this.  I'll try to have an answer for you by 
tonight.

- Mark


Kin-Man Chung wrote:
> -1.
> 
> Remy, please reread JSP 2.0 spec, p 1-101,1-102.  Bullet .2 of the Semantics
> section was added to allow for this kind of optimization.  Bullet .5 and .6
> will be executed ONLY IF the container choose not to issue translation errors.
> 
> -Kin-man
> 
> 
>>Date: Mon, 02 Feb 2004 18:18:01 +0000
>>From: remm@apache.org
>>Subject: cvs commit: 
> 
> jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler 
> Generator.java
> 
>>To: jakarta-tomcat-jasper-cvs@apache.org
>>
>>remm        2004/02/02 10:18:01
>>
>>  Modified:    jasper2/src/share/org/apache/jasper/compiler Generator.java
>>  Log:
>>  - Revert useBean optimization done by Kin-Man, as it seems to violate the
>>    spec wording (which basically says that an error should occur at runtime 
> 
> if the class
> 
>>    is not a JavaBean).
>>  - Bug 26507.
>>  
>>  Revision  Changes    Path
>>  1.217     +31 -35    
> 
> jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.jav
> a
> 
>>  
>>  Index: Generator.java
>>  ===================================================================
>>  RCS file: 
> 
> /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Gen
> erator.java,v
> 
>>  retrieving revision 1.216
>>  retrieving revision 1.217
>>  diff -u -r1.216 -r1.217
>>  --- Generator.java	31 Jan 2004 01:56:28 -0000	1.216
>>  +++ Generator.java	2 Feb 2004 18:18:00 -0000	1.217
>>  @@ -1261,41 +1261,37 @@
>>                           className =
>>                               attributeValue(beanName, false, String.class);
>>                       }
>>  -                    out.printil("try {");
>>  -                    out.pushIndent();
>>  -                    out.printin(name);
>>  -                    out.print(" = (");
>>  -                    out.print(type);
>>  -                    out.print(") java.beans.Beans.instantiate(");
>>  -                    out.print("this.getClass().getClassLoader(), ");
>>  -                    out.print(className);
>>  -                    out.println(");");
>>  -                    out.popIndent();
>>  -                    /*
>>  -                     * Note: Beans.instantiate throws 
> 
> ClassNotFoundException
> 
>>  -                     * if the bean class is abstract.
>>  -                     */
>>  -                    out.printil("} catch (ClassNotFoundException exc) {");
>>  -                    out.pushIndent();
>>  -                    out.printil(
>>  -                        "throw new 
> 
> InstantiationException(exc.getMessage());");
> 
>>  -                    out.popIndent();
>>  -                    out.printil("} catch (Exception exc) {");
>>  -                    out.pushIndent();
>>  -                    out.printin("throw new ServletException(");
>>  -                    out.print("\"Cannot create bean of class \" + ");
>>  -                    out.print(className);
>>  -                    out.println(", exc);");
>>  -                    out.popIndent();
>>  -                    out.printil("}"); // close of try
>>                   } else {
>>                       // Implies klass is not null
>>  -                    // Generate codes to instantiate the bean class
>>  -                    out.printin(name);
>>  -                    out.print(" = new ");
>>  -                    out.print(klass);
>>  -                    out.println("();");
>>  +                    className = quote(klass);
>>                   }
>>  +                out.printil("try {");
>>  +                out.pushIndent();
>>  +                out.printin(name);
>>  +                out.print(" = (");
>>  +                out.print(type);
>>  +                out.print(") java.beans.Beans.instantiate(");
>>  +                out.print("this.getClass().getClassLoader(), ");
>>  +                out.print(className);
>>  +                out.println(");");
>>  +                out.popIndent();
>>  +                /*
>>  +                 * Note: Beans.instantiate throws ClassNotFoundException
>>  +                 * if the bean class is abstract.
>>  +                 */
>>  +                out.printil("} catch (ClassNotFoundException exc) {");
>>  +                out.pushIndent();
>>  +                out.printil(
>>  +                    "throw new InstantiationException(exc.getMessage());");
>>  +                out.popIndent();
>>  +                out.printil("} catch (Exception exc) {");
>>  +                out.pushIndent();
>>  +                out.printin("throw new ServletException(");
>>  +                out.print("\"Cannot create bean of class \" + ");
>>  +                out.print(className);
>>  +                out.println(", exc);");
>>  +                out.popIndent();
>>  +                out.printil("}"); // close of try
>>                   /*
>>                    * Set attribute for bean in the specified scope
>>                    */
>>  
>>  
>>  
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
>>
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
> 


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


Mime
View raw message