<AWT Dev>  Review request for 8179665: [Windows] java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location
sergey.bylokhov at oracle.com
Fri May 12 17:36:21 UTC 2017
----- semyon.sadetsky at oracle.com wrote:
> Hi Sergey,
> The probability of such scenario is very low but I agree it doesn't
> equal to zero.
> Also, there is yet another scenario: right after the request to open
> candidate window is scheduled in the native queue the parent window
> The updated fix:
> On 05/10/2017 03:48 PM, Sergey Bylokhov wrote:
> > Hi, Semyon.
> > It seems that this new check is executed on a toolkit thread, and
> does not solve the problem if the window became invisible after this
> check but before we post an event to the EDT.
> > I guess that the root cause is that getTextLocation() throws an
> unexpected error but it should handle it and return empty rectangle(I
> guess it can be tested just by calling this method when the component
> is invisible). The current test and a check is also useful.
> > ----- semyon.sadetsky at oracle.com wrote:
> >> Hello,
> >> Please review fix for JDK10:
> >> bug: https://bugs.openjdk.java.net/browse/JDK-8179665
> >> webrev: http://cr.openjdk.java.net/~ssadetsky/8179665/webrev.00/
> >> The root cause of the issue is IME events are sent when
> >> state is set or cleared even during the window is not visible. In
> >> case requesting the window position causes the exception.
> >> The fix introduces a check for window visibility before the
> >> calculation
> >> of the IME status window position. The latter should not be shown
> >> the parent window is not visible so the IME window position is
> >> unnecessary.
> >> --Semyon
More information about the awt-dev