changeset 734:29aad2f10875

Fix PR854: Resizing an applet several times causes 100% CPU load
author Adam Domurad <adomurad@redhat.com>
date Fri, 17 May 2013 12:31:32 -0400
parents 1b1e547ccb4a
children 64f7c169eb3e
files ChangeLog NEWS plugin/icedteanp/java/sun/applet/PluginAppletViewer.java
diffstat 3 files changed, 9 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed May 15 12:14:26 2013 +0200
+++ b/ChangeLog	Fri May 17 12:31:32 2013 -0400
@@ -1,3 +1,9 @@
+2013-05-17  Adam Domurad  <adomurad@redhat.com>
+
+	Fix PR854: Resizing an applet several times causes 100% CPU load
+	* plugin/icedteanp/java/sun/applet/PluginAppletViewer.java
+	(handleMessage): Replace buggy initialization wait.
+
 2013-05-14  Jiri Vanek  <jvanek@redhat.com>
             Jacob Wisor  <gitne@excite.co.jp>
 
--- a/NEWS	Wed May 15 12:14:26 2013 +0200
+++ b/NEWS	Fri May 17 12:31:32 2013 -0400
@@ -9,6 +9,8 @@
 CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
 
 New in release 1.5 (2013-XX-XX):
+* Plugin
+  - PR854: Resizing an applet several times causes 100% CPU load
 
 New in release 1.4 (2013-XX-XX):
 * Added cs localization
--- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java	Wed May 15 12:14:26 2013 +0200
+++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java	Fri May 17 12:31:32 2013 -0400
@@ -665,18 +665,7 @@
         if (message.startsWith("width")) {
 
             // Wait for panel to come alive
-            long maxTimeToSleep = APPLET_TIMEOUT;
-            statusLock.lock();
-            try {
-                while (!status.get(identifier).equals(PAV_INIT_STATUS.INIT_COMPLETE) &&
-                        maxTimeToSleep > 0) {
-                    maxTimeToSleep -= waitTillTimeout(statusLock, initComplete,
-                                                      maxTimeToSleep);
-                }
-            }
-            finally {
-                statusLock.unlock();
-            }
+            waitForAppletInit(panel);
 
             // 0 => width, 1=> width_value, 2 => height, 3=> height_value
             String[] dimMsg = message.split(" ");