<Beans Dev> behavior of PropertyDescription.getReadMethod when is/get getters are provided

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Wed Mar 20 22:35:07 UTC 2019


Hi, Dmitry.

Thank you for this report. Do you have a bugid for it?

On 19/03/2019 09:55, Dmitry Cherepanov wrote:
> Hello,
> 
> The behavior of PropertyDescription.getReadMethod() method changed for boolean properties when both “is” and “get” getters are provided in bean class.
> 
> The following sample demonstrates this issue
> http://cr.openjdk.java.net/~dcherepanov/beans/BoolealPropertyTest/Test.java
> 
> For 8, getReadMethod() returns the “is” getter
> Starting from 9, getReadMethod() returns the “get” getter
> 
> This seems to be a behavior change introduced by [1] for [2] in PropertyInfo.initialize() where the “get” getters (stored in this.readList) overwrite the “is” getter (stored in this.read).
> 
> I’m trying to understand if this behavior is covered by spec and after reading JavaBeans API specification (version 1.01, section “8.3.2 Boolean properties”)
> 
> -------------------------------------------------------------------------------------
> This “is<PropertyName>” method may be provided instead of a “get<PropertyName>” method, or it may be provided in addition to a “get<PropertyName>” method. In either case, if the “is<PropertyName>” method is present for a boolean property then we will use the “is<PropertyName>” method to read the property value.
> -------------------------------------------------------------------------------------
> 
> it seems like it’s covered and getReadMethod() should return the “is” getter in this case. I plan to file bug for this and prepare a patch (that would restore the behavior of getReadMethod()) but wanted to confirm the evaluation makes sense.
> 
> Thanks,
> 
> Dmitry
> 
> [1] http://hg.openjdk.java.net/jdk9/jdk9/jdk/rev/cf25509c9243#l4.72
> [2] https://bugs.openjdk.java.net/browse/JDK-4058433
> 


-- 
Best regards, Sergey.


More information about the beans-dev mailing list