Taken from java.beans.PropertyDescriptor javadoc:
/**
* Constructs a PropertyDescriptor for a property that follows
* the standard Java convention by having getFoo and setFoo
* accessor methods. Thus if the argument name is "fred", it will
* assume that the writer method is "setFred" and the reader method
* is "getFred" (or "isFred" for a boolean property). Note that the
* property name should start with a lower case character, which will
* be capitalized in the method names.
* .....it seems to be a problem of your bean. It not follows Java convention when you remove the isBound method!
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]
