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=22867>.
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=22867

Tag handlers can't be inner/nested classes

[EMAIL PROTECTED] changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|Jasper                      |Jasper 2



------- Additional Comments From [EMAIL PROTECTED]  2003-09-01 22:47 -------
It's Jasper2, apparently.

The second error message I got is presumably from this code in
org.apache.jasper.compiler.Parser:

try {
    tagHandlerClass
        = ctxt.getClassLoader().loadClass(tagInfo.getTagClassName());
} catch (Exception e) {
    err.jspError(start, "jsp.error.unable.loadclass", shortTagName,
                 prefix);
}

so "generator" is just the name of my custom tag (which explains why I didn't
find a single hit for "unable to load class generator" in Google or the Apache
Bugzilla :) ... and it makes perfect sense that the classloader didn't find
this nested class by the nonstandard name syntax OuterClass.NestedClass
(instead of the standard OuterClass$NestedClass syntax).

So the point remains that a nested class breaks JSP compilation if given with
the $ syntax, and breaks classloader lookup if given with the . syntax. So
nested classes are not usable as tag handlers, at least as of version 4.1.24.

The root of this problem is that nested classes in Java have different names
at compile time and at runtime. The fix is presumably to add logic to the JSP
source file generation, replacing all dollar signs in tag-handler classnames
with dots.

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

Reply via email to