<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 5/22/2024 11:19 AM, Aman Sharma
      wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:eabfa5ae508e4257bd0c9bbef244637f@kth.se">
      
      <style type="text/css" style="display:none;">P {margin-top:0;margin-bottom:0;}</style>
      <div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Garamond,Georgia,serif;" dir="ltr">
        <p>Hi,</p>
      </div>
    </blockquote>
    <p>[snip]<br>
    </p>
    <p><br>
    </p>
    <blockquote type="cite" cite="mid:eabfa5ae508e4257bd0c9bbef244637f@kth.se">
      <div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Garamond,Georgia,serif;" dir="ltr"><font style="font-family: Garamond, Georgia, serif, serif, "EmojiFont";" size="3" face="Garamond,Georgia,serif" color="black"><font size="3" face="Garamond,Georgia,serif,EmojiFont,Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols" color="black">
          </font></font>
        <p><font style="font-family: Garamond, Georgia, serif, serif, "EmojiFont";" size="3" face="Garamond,Georgia,serif" color="black"><span style="font-size:12pt;" dir="ltr" id="m_-6689849625419728689divtagdefaultwrapper"><font size="3" face="Garamond,Georgia,serif,EmojiFont,Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols" color="black"><span style="font-size:12pt;" id="m_-6689849625419728689m_5381525267202685274m_1510169701429416940divtagdefaultwrapper">Notice
                  the difference in the order of fields and
                  `helpCommand` method is mapped to a different field
                  name in both classes.
                  <font style="font-family: Garamond, Georgia, serif, serif, "EmojiFont";" size="3" face="Garamond,Georgia,serif" color="black">
                    <span style="font-size:12pt;" dir="ltr" id="m_-6689849625419728689divtagdefaultwrapper"><font size="3" face="Garamond,Georgia,serif,EmojiFont,Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols" color="black"><span style="font-size:12pt;" id="m_-6689849625419728689m_5381525267202685274m_1510169701429416940divtagdefaultwrapper">This
                          happens because the method array returned by
                          `getMethods` <a href="https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/lang/Class.java#L2178" class="OWAAutoLink" moz-do-not-send="true">
                            is not sorted in any particular order</a>
                          when generating a proxy class.</span></font></span></font>
                  What dictates this order? And why is it not
                  deterministic?<br>
                </span></font></span></font></p>
        <p><font style="font-family: Garamond, Georgia, serif, serif, "EmojiFont";" size="3" face="Garamond,Georgia,serif" color="black"><span style="font-size:12pt;" dir="ltr" id="m_-6689849625419728689divtagdefaultwrapper"><font size="3" face="Garamond,Georgia,serif,EmojiFont,Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols" color="black"><span style="font-size:12pt;" id="m_-6689849625419728689m_5381525267202685274m_1510169701429416940divtagdefaultwrapper"><br>
                </span></font></span></font></p>
        <div id="Signature">
          <div id="divtagdefaultwrapper" dir="ltr" style="font-size: 12pt; color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, "EmojiFont", "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
            <div id="m_4935352394101912768Signature">
              <div name="divtagdefaultwrapper"><font size="2" color="#808080"><span style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif; background-color:rgb(255,255,255)"><span id="divtagdefaultwrapper" style="font-size:12pt">
                      <div style="margin-top:0; margin-bottom:0"><span style="color:rgb(0,0,0); font-family:Garamond,Georgia,serif">Regards,</span></div>
                      <span style="font-family:Garamond,Georgia,serif"></span><span style="font-family:Garamond,Georgia,serif"></span><span style="color:rgb(0,0,0)"></span><span style="font-family:Garamond,Georgia,serif"></span><span style="font-family:Garamond,Georgia,serif"></span>
                      <div style="margin-top:0; margin-bottom:0"><span style="color:rgb(0,0,0); font-family:Garamond,Georgia,serif">Aman Sharma</span></div>
                    </span></span></font></div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <p><br>
    </p>
    <p>As a general comment, it is _not_ the goal of the API
      specification to (over) specify exact behavior in cases like this.<br>
      <br>
      See as an example the discussion concerning behavioral
      compatibility starting around slide 46 of<br>
      <br>
      "Contributing to OpenJDK: Participating in stewardship for the
      long-term,"<br>
<a class="moz-txt-link-freetext" href="https://jcp.org/aboutJava/communityprocess/ec-public/materials/2023-06-13/Contributing_to_OpenJDK_2023_04_12.pdf">https://jcp.org/aboutJava/communityprocess/ec-public/materials/2023-06-13/Contributing_to_OpenJDK_2023_04_12.pdf</a></p>
    <p><br>
    </p>
    <p>This approach has evolved over the years and releases.<br>
      <br>
      In this case semantically, the array returned by getMethod is a
      set and the no particular meaning should be read into the order of
      the elements.<br>
      <br>
      HTH,<br>
    </p>
    <p><br>
    </p>
    <p>-Joe<br>
    </p>
  </body>
</html>