https://bz.apache.org/bugzilla/show_bug.cgi?id=63898

--- Comment #6 from Konstantin Kolinko <knst.koli...@gmail.com> ---
1. (In reply to jeffrey.lobello from comment #0)
> Here's an example tag class
> 
>     public void setValue(final String value) {
>     }
>     public void setValue(final Object value) {
>     }

And there is no "getValue()" method for this pair?


2. Note that the JavaBeans specification allows to bypass the introspection
logic in java.beans.Introspector and explicitly provide a description for one's
bean.

That is done by creating a class named FooBeanInfo for a bean class named Foo.

I think that a possible workaround for the OP is to create such a class.


3. (In reply to Christopher Schultz from comment #2)
> Is there scope for Tomcat to either (a) pick the "best" method (based upon 
> type-agreement) or (b) detect a conflict and throw an error?

In OP's case the attribute type is explicitly declared as "java.lang.Object" in
a TLD file for the tag library.  There is an explicit mismatch with the method
returned by introspection. It is not a question of choosing the "best" method.


BTW, I think that the relevant code in Jasper is the TagHandlerInfo class
declared in org/apache/jasper/compiler/Generator.java. See its constructor that
does the introspection. See calls to its getSetterMethod() method, such as

   m = handlerInfo.getSetterMethod(localName);
   if (m == null) { (... - reporting an error) }
   c = m.getParameterTypes();

Technically, the name of c[0] class could be compared as string with the value
of javax.servlet.jsp.tagext.TagAttributeInfo.getTypeName(), but

a) There are likely to be some edge cases.

b) What do we do with the result? Generate an error?

In OP's case the web application is failing. If I understand correctly it
compiles successfully, but fails at run time? If so, implementing an explicit
check will make it to fail at compile time.

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to