<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div>
<p>The siblingsComparator in sun.lwawt.macosx.CPlatformWindow violates the contract if one of the windows is not visible and therefore has no peer:</p>

<pre><code>    private final Comparator<Window> siblingsComparator = (w1, w2) -> {
        if (w1 == w2) {
            return 0;
        }
        ComponentAccessor componentAccessor = AWTAccessor.getComponentAccessor();
        Object p1 = componentAccessor.getPeer(w1);
        Object p2 = componentAccessor.getPeer(w2);
        if (p1 instanceof LWWindowPeer && p2 instanceof LWWindowPeer) {
            return Long.compare(
                    ((CPlatformWindow) (((LWWindowPeer) p1).getPlatformWindow())).lastBecomeMainTime,
                    ((CPlatformWindow) (((LWWindowPeer) p2).getPlatformWindow())).lastBecomeMainTime);
        }
        return 0;
    };

</code></pre>

<p>java.lang.IllegalArgumentException: Comparison method violates its general contract!<br/>
at java.base/java.util.TimSort.mergeHi(TimSort.java:903)<br/>
at java.base/java.util.TimSort.mergeAt(TimSort.java:520)<br/>
at java.base/java.util.TimSort.mergeForceCollapse(TimSort.java:461)<br/>
at java.base/java.util.TimSort.sort(TimSort.java:254)<br/>
at java.base/java.util.Arrays.sort(Arrays.java:1441)<br/>
at java.desktop/sun.lwawt.macosx.CPlatformWindow.orderAboveSiblingsImpl(CPlatformWindow.java:1227)<br/>
at java.desktop/sun.lwawt.macosx.CPlatformWindow.orderAboveSiblings(CPlatformWindow.java:1218)<br/>
at java.desktop/sun.lwawt.macosx.CPlatformWindow.checkBlockingAndOrder(CPlatformWindow.java:1168)<br/>
at java.desktop/sun.lwawt.macosx.CPlatformWindow.setModalBlocked(CPlatformWindow.java:973)<br/>
at java.desktop/sun.lwawt.LWWindowPeer.setModalBlocked(LWWindowPeer.java:461)<br/>
at java.desktop/sun.lwawt.LWWindowPeer.blockWindows(LWWindowPeer.java:652)</p>
</div></div></body></html>