You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Neeme Praks <ne...@apache.org> on 2003/03/01 11:17:16 UTC
[jelly] [ant taglib] [patch] [bugfix] ant taglib converts any non-string
task attribute to string (and as a result, ignores the attribute)
I now went into the ant taglib sourcecode, to track down the problem of
"[jelly] problem: setting Map property on bean?"
http://www.mail-archive.com/commons-dev@jakarta.apache.org/msg17993.html
I found out that there are two bugs in there:
1. any non-string attribute is converted to string:
setAttribute(String name, Object value) is converting all values to
strings by calling value.toString().
I also removed the check for Expression (seemed redundant), as all the
expressions seem to be resolved before they are passed to this method.
All the test cases still pass, so I assume that this is ok.
If this is not the case then ignore this removal.
2. even if the value is not converted to string and is passed through
as-is, there is a bug in finding the appropriate setter method.
The code seems to assume that storeElement() method in
IntrospectionHelper (in ant) throws an exception, if the element is not
supported by the task. However, this is not the case: if the element is
not supported, storeElement() silently returns without any errors. I
think this is a bug in Ant, and I will report it there as well. As a
workaround for now, I added a call to getElementType() that throws an
exception if the element is not supported.
Also, I added testcase for this + some more logging info and comments
here-and-there...
Patches and files are attached.
Rgds,
Neeme