<div dir="ltr"><div><div><div>I have filed the report.<br><br></div>Regarding the 
8156043 

fix: Yes, when I use debugger to reverse the effects of `list.sort(MethodOrder.instance)` in MethodInfo.get(Class<?>), the write method is found as expected.<br><br></div>Regards,<br></div>Vadim<br></div><div class="gmail_extra"><br><div class="gmail_quote">On 29 January 2018 at 16:40, Semyon Sadetsky <span dir="ltr"><<a href="mailto:semyon.sadetsky@oracle.com" target="_blank">semyon.sadetsky@oracle.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello Vadim,<br>
<br>
It looks like a consequence of the 8156043 fix discussed on this alias in May 2016. The fix author was warned that his change may result in wrong property setter methods in case of overriding. Nevertheless he insisted that the fix is justified by some improved stability reasons. It could require revising if you file this bug.<br>
<br>
--Semyon<br>
<br>
<br>
On 01/27/2018 03:45 AM, Vadim Beilin wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello<br>
We have come across what looks like a regression between Java 8 and Java 9.<br>
<br>
The following program prints different results.<br>
------------------------------ BeansMain.java<br>
import java.beans.*;<br>
<br>
class Parent<T> {<br>
    T value;<br>
    public T getValue() {<br>
        return value;<br>
    }<br>
    protected void setValue(T value) {<br>
        this.value = value;<br>
    }<br>
}<br>
<br>
class Child extends Parent<Runnable> {<br>
    @Override<br>
    public void setValue(Runnable value) {<br>
        super.setValue(value);<br>
    }<br>
}<br>
<br>
public class BeansMain {<br>
    public static void main(String[] args) throws IntrospectionException {<br>
        BeanInfo beanInfo = Introspector.getBeanInfo(Child<wbr>.class);<br>
        for (PropertyDescriptor pd : beanInfo.getPropertyDescriptor<wbr>s()) {<br>
            System.out.println(pd.getName(<wbr>) + "\n  >> " + pd.getReadMethod() + "\n  << " + pd.getWriteMethod());<br>
        }<br>
    }<br>
}<br>
------------------------------<br>
<br>
With Java 8 (1.8.0_161-b12):<br>
------------------------------<br>
class<br>
  >> public final native java.lang.Class java.lang.Object.getClass()<br>
  << null<br>
value<br>
  >> public java.lang.Object Parent.getValue()<br>
  << public void Child.setValue(java.lang.Runna<wbr>ble)<br>
------------------------------<br>
<br>
With Java 9 (9.0.1+11):<br>
------------------------------<br>
class<br>
  >> public final native java.lang.Class java.lang.Object.getClass()<br>
  << null<br>
value<br>
  >> public java.lang.Object Parent.getValue()<br>
  << null<br>
------------------------------<span class=""><br>
<br>
Is it something you have seen before? Does it look like a bug to you?<br>
<br>
<br>
<br></span>
Thanks,<br>
Vadim<br>
</blockquote>
<br>
</blockquote></div><br></div>