// Since there can be multiple setter methods but only one getter // method, find the getter method first so that you know what the // property type is. For booleans, there can be "is" and "get" // methods. If an "is" method exists, this is the official // reader method so look for this one first.
From PropertyDescriptor once again.
If there is an "is" method it is assumed to be the official reader method, so the property type is
assumed to be 'boolean'.
There is a misunderstanding in the writer method because its property type is String.
You should consider renaming isBound() to something like isValueBound()
Kenneth Stout wrote:
Hi all.
I've been running into a problem that appears to be in how beanutils is dealing with information returned from java.beans.Introspector.
I've created a bean that is similar to the following:
public class SampleBean { private String bound; public void setBound(String bound) { this.bound = bound; } public String getBound() { return bound; } public boolean isBound() { return Utils.toBoolean(bound); } }
When I use digester to populate the bean the setBound is never called and the information is lost. Looking in the log file I find that beanutils says "Skipping read-only property". If I remove the isBound method everything works just fine. If I leave the isBound and remove the getBound method beanutils gets upset as "get" is hardcoded and does not accept the "is" form of a getter.
It appears that java.beans.Introspector is returning three descriptors and beanutils can only deal with two descriptors and therefore misses the setter. This is my impression. I was very frustrated by this time, however it appears that beanutils is hardcode for position 1 and 2 in the Introspector array to find the getter and setter.
I've checked version 1.6.1, 1.5, and 1.4 with the same results.
Have I missed something?
Thanks, Kenneth.
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
