<Beans Dev> [9] Review Request: 8156043 Unstable behavior of PropertyDescriptor's getWriteMethod() in case of overloaded setters

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Wed May 25 11:14:23 UTC 2016

On 25.05.16 11:38, Semyon Sadetsky wrote:
>> In this case the type of foo property will be Enum, before and after
>> the fix. But the write method will be found only if this method is
>> added to Sub, in other case the write method is recognized only if we
>> remove all duplicates of set(xxx). Not sure is it intended behavior in
>> jdk9 to skip such writers or not. I will file CR for that.
> That maybe an another issue.

I dig to the history and found that it was done intentionally when 
JavaBean jep was implemented. but I filed 
https://bugs.openjdk.java.net/browse/JDK-8157828 for additional 

> But the current fix need to be checked by
> the scenario when there are several getters (over-ridden with the return
> type substitutability) in addition to the setters.

Tescase is updated, the case: getE + multiple setE is added:

>>> On 5/17/2016 3:20 PM, Sergey Bylokhov wrote:
>>>> Hello.
>>>> Please review the fix for jdk9.
>>>> We have a number of bugs which state that our JavaBeans randomly does
>>>> not work, examples: JDK-6807471[1] , JDK-6788525[2], the reason is
>>>> that the order of methods from Class.getMethods() is not specified.
>>>> So I propose to fix this bug totally and sort the methods in some
>>>> order. Note that the resulted list is cached, and we sort the list
>>>> only the once.
>>>> The code partly was copied from com.sun.jmx.mbeanserver.MethodOrder
>>>> [3], but the parameters check and the order for return values were
>>>> changed. After this fix our bugs(if any) can be easily reproduced.
>>>> [1] https://bugs.openjdk.java.net/browse/JDK-6807471
>>>> [2] https://bugs.openjdk.java.net/browse/JDK-6788525
>>>> [3]
>>>> http://hg.openjdk.java.net/jdk9/client/jdk/file/fb38b0925915/src/java.management/share/classes/com/sun/jmx/mbeanserver/MBeanAnalyzer.java
>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8156043
>>>> Webrev can be found at:
>>>> http://cr.openjdk.java.net/~serb/8156043/webrev.00

Best regards, Sergey.

More information about the beans-dev mailing list