Hello, Sergey. I've updated the fix according to your comments: http://cr.openjdk.java.net/~pchelko/8024864/webrev.01/
With best regards. Petr. On 10.10.2013, at 14:34, Sergey Bylokhov <[email protected]> wrote: > Hi, Petr. > > 315 Rectangle newBounds = new Rectangle(getBounds()); > > It is not necessary to create new Rectangle, because getBounds creates it too. > > typo: > > 324so the peer wold be updated in the callback > > > On 10.10.2013 11:56, Petr Pchelko wrote: >> Hello, AWT Team. >> >> Please review the fix for the issue: >> https://bugs.openjdk.java.net/browse/JDK-8024864 >> The fix is available at: >> http://cr.openjdk.java.net/~pchelko/8024864/webrev.00/ >> >> The problem: it's a hard-to-describe thread race. The main problem is the >> following: when we set the bounds of the frame they could be modified by the >> native system, so we reset them in notifyReshape. However, there are cases >> when the peer bounds, native bounds and frame bound get completely >> unsynchronized with each other. In those cases the rendering problems occur, >> because paint events are generated with wrong bounds. >> The solution is to only set peer's bounds in the callback from the native >> system and not set them in setBounds directly. This would fix the problem, >> because now the peer bounds and real native bounds are always synchronized >> and there's no time frame when the peers bounds are set to some different >> value which would then be updated by the native system. >> >> With best regards. Petr. > > > -- > Best regards, Sergey. >
