diff options
author | Adam Domurad <[email protected]> | 2013-02-07 14:18:24 -0500 |
---|---|---|
committer | Adam Domurad <[email protected]> | 2013-02-07 14:18:24 -0500 |
commit | 6e946f8c5fd09a843a76cdb24f5dc6ccbf9c36b4 (patch) | |
tree | ae9b0608984704cef41e0d4587ddb57b7a77657d | |
parent | ab80a9d3760309ffd0c84870a3ea9ee8548d847f (diff) |
Only destroy full initialized applets
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | plugin/icedteanp/java/sun/applet/PluginAppletViewer.java | 4 |
2 files changed, 11 insertions, 0 deletions
@@ -1,3 +1,10 @@ +2013-02-07 Adam Domurad <[email protected]> + + Ensure applet destruction cannot in the middle of initialization. + * netx/net/sourceforge/jnlp/NetxPanel.java + (destroyApplet): wait for applet initialization + missing + 2013-02-06 Jana Fabrikova <[email protected]> * /tests/reproducers/simple/JSToJSet/testcases/JSToJSetTest.java: diff --git a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java index ac818d5..8a4f078 100644 --- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java +++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java @@ -587,6 +587,10 @@ public class PluginAppletViewer extends XEmbeddedFrame private static synchronized void destroyApplet(int identifier) { + // We should not try to destroy an applet during + // initialization. It may cause an inconsistent state. + waitForAppletInit( applets.get(identifier).panel ); + PluginDebug.debug("DestroyApplet called for ", identifier); PAV_INIT_STATUS prev = updateStatus(identifier, PAV_INIT_STATUS.DESTROYED); |