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.
