changeset 1007:247a09f2cd10

Fixed (RH1091563)- PluginAppletViewer.java: casts to (JNLPClassLoader) DID guarded by instanceof.
author Jiri Vanek <jvanek@redhat.com>
date Fri, 01 Aug 2014 11:25:44 +0200
parents 36ecc6fe6f62
children 6f45fbbf26a6
files ChangeLog NEWS plugin/icedteanp/java/sun/applet/PluginAppletViewer.java
diffstat 3 files changed, 17 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Jul 31 16:57:39 2014 -0400
+++ b/ChangeLog	Fri Aug 01 11:25:44 2014 +0200
@@ -1,3 +1,8 @@
+2014-08-01  Jiri Vanek  <jvanek@redhat.com>
+
+	* plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: casts to
+	(JNLPClassLoader) DID guarded by instanceof
+
 2014-07-31  Andrew Azores  <aazores@redhat.com>
 
 	Add URLPermission support to SecurityDesc. This is essentially Java 8
--- a/NEWS	Thu Jul 31 16:57:39 2014 -0400
+++ b/NEWS	Fri Aug 01 11:25:44 2014 +0200
@@ -18,6 +18,7 @@
 * NetX
   - PR1858: Java Console accepts multi-byte encodings
   - PR1859: Java Console UI improvement for lower resolutions (800*600)
+  - RH1091563: [abrt] icedtea-web-1.5-2.fc20: Uncaught exception java.lang.ClassCastException in method sun.applet.PluginAppletViewer$8.run()
 * Plugin
   - PR1743 - Intermittant deadlock in PluginRequestProcessor
   - RH1121549: coverity defects
--- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java	Thu Jul 31 16:57:39 2014 -0400
+++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java	Fri Aug 01 11:25:44 2014 +0200
@@ -829,14 +829,16 @@
                 PluginDebug.debug("getCachedImageRef() plugin codebase = ", codeBase);
 
                 String resourceName = originalURL.substring(codeBase.length());
-                JNLPClassLoader loader = (JNLPClassLoader) panel.getAppletClassLoader();
+                if (panel.getAppletClassLoader() instanceof JNLPClassLoader) {
+                    JNLPClassLoader loader = (JNLPClassLoader) panel.getAppletClassLoader();
 
-                URL localURL = null;
-                if (loader.resourceAvailableLocally(resourceName)) {
-                    url = loader.getResource(resourceName);
+                    URL localURL = null;
+                    if (loader.resourceAvailableLocally(resourceName)) {
+                        url = loader.getResource(resourceName);
+                    }
+
+                    url = localURL != null ? localURL : url;
                 }
-
-                url = localURL != null ? localURL : url;
             }
 
             PluginDebug.debug("getCachedImageRef() getting img from URL = ", url);
@@ -1500,7 +1502,9 @@
                 appletPanels.removeElement(p);
                 
                 // Mark classloader unusable
-                ((JNLPClassLoader) cl).decrementLoaderUseCount();
+                if (cl instanceof JNLPClassLoader) {
+                    ((JNLPClassLoader) cl).decrementLoaderUseCount();
+                }
 
                 try {
                     SwingUtilities.invokeAndWait(new Runnable() {