DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4919>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4919

JSP won't compile when using "class" attribute (standard HTML4 style sheet attribute)





------- Additional Comments From [EMAIL PROTECTED]  2001-11-16 05:00 -------
The source code corresponding to the compile-time exception that is thrown in 
3.2.2 is below:

    private final void generateSetters(ServletWriter writer, String parent)
        throws JasperException
    {
        writer.println(thVarName+".setPageContext(pageContext);");
        writer.println(thVarName+".setParent("+parent+");");

        if (attributes.length != 0)
            for(int i = 0; i < attributes.length; i++) {
                String attrValue = (String) attrs.get(attributes[i].getName());
                if (attrValue != null) {
                    String attrName = attributes[i].getName();
                    Method m = tc.getSetterMethod(attrName);
                    if (m == null)
                        throw new CompileException
                            (start, Constants.getString
                             ("jsp.error.unable.to_find_method",
                              new Object[] { attrName }));
                    Class c[] = m.getParameterTypes();
                    // assert(c.length > 0)

                    if (attributes[i].canBeRequestTime()) {
                        if (JspUtil.isExpression(attrValue))
                            attrValue = JspUtil.getExpr(attrValue);
                        else
                            attrValue = convertString(c[0], attrValue, writer, 
attrName);
                    } else
                        attrValue = convertString(c[0], attrValue, writer, 
attrName);
                    writer.println(thVarName+"."+m.getName()
+"("+attrValue+");");
                }
            }
    }

It fails on the

        Method m = tc.getSetterMethod(attrName);

The previous line

        String attrName = attributes[i].getName();

returns null because there is no attribute called "class"


It is, of course, legal to have a

        public void setClass(String klass) {...}

although, of course, not legal to have a

        public String getClass();

as it can't override the Object getClass() method.

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to