changeset 1014:249435147a0b

Preventing rare class cast exception in erroneous detached applets
author Jiri Vanek <jvanek@redhat.com>
date Mon, 22 Sep 2014 17:13:19 +0200
parents e66c55de3d22
children 406f306e3380
files ChangeLog netx/net/sourceforge/jnlp/runtime/AppletEnvironment.java netx/net/sourceforge/jnlp/splashscreen/SplashUtils.java tests/netx/unit/net/sourceforge/jnlp/splashscreen/SplashUtilsTest.java tests/netx/unit/net/sourceforge/jnlp/util/logging/JavaConsoleTest.java
diffstat 5 files changed, 28 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sun Sep 21 10:43:48 2014 -0400
+++ b/ChangeLog	Mon Sep 22 17:13:19 2014 +0200
@@ -1,3 +1,13 @@
+2014-09-22  Jiri Vanek  <jvanek@redhat.com>
+
+	Preventing rare class cast exception in erroneous detached applets
+	* netx/net/sourceforge/jnlp/runtime/AppletEnvironment.java: getSplashControler
+	renamed to getSplashController. (getSplashController) added check for 
+	SplashController instance. Returning null if not so.
+	* netx/net/sourceforge/jnlp/splashscreen/SplashUtils.java: adapted to renaming
+	* tests/netx/unit/net/sourceforge/jnlp/splashscreen/SplashUtilsTest.java:
+	added (assertNulsAreOkInShow) test to check null values for showError methods
+
 2014-09-21  Andrew Azores  <aazores@redhat.com>
 
 	* netx/javaws.1: Fixed typos, made formatting more consistent, and added
--- a/netx/net/sourceforge/jnlp/runtime/AppletEnvironment.java	Sun Sep 21 10:43:48 2014 -0400
+++ b/netx/net/sourceforge/jnlp/runtime/AppletEnvironment.java	Mon Sep 22 17:13:19 2014 +0200
@@ -138,9 +138,12 @@
      * container must be SplashContoler
      * 
      */
-    public SplashController getSplashControler() {
-        
-        return (SplashController)cont;
+    public SplashController getSplashController() {
+        if (cont instanceof SplashController) {
+            return (SplashController) cont;
+        } else {
+            return null;
+        }
     }
 
     /**
--- a/netx/net/sourceforge/jnlp/splashscreen/SplashUtils.java	Sun Sep 21 10:43:48 2014 -0400
+++ b/netx/net/sourceforge/jnlp/splashscreen/SplashUtils.java	Mon Sep 22 17:13:19 2014 +0200
@@ -94,7 +94,7 @@
         if (ae == null) {
             return;
         }
-        SplashController p = ae.getSplashControler();
+        SplashController p = ae.getSplashController();
         showError(ex, p);
     }
 
--- a/tests/netx/unit/net/sourceforge/jnlp/splashscreen/SplashUtilsTest.java	Sun Sep 21 10:43:48 2014 -0400
+++ b/tests/netx/unit/net/sourceforge/jnlp/splashscreen/SplashUtilsTest.java	Mon Sep 22 17:13:19 2014 +0200
@@ -40,6 +40,8 @@
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
+import net.sourceforge.jnlp.runtime.AppletEnvironment;
+import net.sourceforge.jnlp.runtime.AppletInstance;
 import net.sourceforge.jnlp.runtime.JNLPRuntime;
 import net.sourceforge.jnlp.splashscreen.impls.*;
 import org.junit.Assert;
@@ -251,5 +253,13 @@
       field.setAccessible(true);
       field.set(null, newValue);
    }
+     
+    @Test
+    public void assertNulsAreOkInShow() {
+        SplashUtils.showError(null, (AppletEnvironment)null);
+        SplashUtils.showError(null, (AppletInstance)null);
+        SplashUtils.showError(null, (SplashController)null);
+    }
+     
 
 }
--- a/tests/netx/unit/net/sourceforge/jnlp/util/logging/JavaConsoleTest.java	Sun Sep 21 10:43:48 2014 -0400
+++ b/tests/netx/unit/net/sourceforge/jnlp/util/logging/JavaConsoleTest.java	Mon Sep 22 17:13:19 2014 +0200
@@ -26,7 +26,7 @@
         Assert.assertFalse(p3.wasError);
         Assert.assertTrue(p1.header.isC);
         Assert.assertTrue(p3.header.isC);
-        Assert.assertEquals(OutputController.Level.MESSAGE_DEBUG,p1.header.level);
+        Assert.assertEquals(OutputController.Levgl.MESSAGE_DEBUG,p1.header.level);
         Assert.assertEquals(OutputController.Level.ERROR_ALL,p3.header.level);
         Assert.assertTrue(p1.header.date.toString().contains("Tue Nov 19 09:43:50") && p1.header.date.toString().contains("2013"));
         Assert.assertTrue(p3.header.date.toString().contains("Tue Nov 19 09:43:50") && p3.header.date.toString().contains("2013"));