diff options
Diffstat (limited to 'java/awt/Frame.java')
-rw-r--r-- | java/awt/Frame.java | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/java/awt/Frame.java b/java/awt/Frame.java index 542013671..e0c0d1ff3 100644 --- a/java/awt/Frame.java +++ b/java/awt/Frame.java @@ -340,13 +340,16 @@ public class Frame extends Window implements MenuContainer parent.remove(menuBar); menuBar.setParent(this); - if (peer != null) - { - if (menuBar != null) - menuBar.addNotify(); - invalidateTree(); - ((FramePeer) peer).setMenuBar(menuBar); - } + // Create local copy for thread safety. + FramePeer p = (FramePeer) peer; + if (p != null) + { + if (menuBar != null) + menuBar.addNotify(); + if (valid) + invalidate(); + p.setMenuBar(menuBar); + } } } |