tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kin-Man Chung <Kin-Man.Ch...@Eng.Sun.COM>
Subject Re: cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler Generator.java
Date Mon, 02 Feb 2004 18:32:28 GMT
-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


Mime
View raw message