changeset 322:0e524d940827

fix findbugs cloud jnlps Someone reported that the following JNLP was not starting: http://findbugs.cs.umd.edu/cloud/eclipse.jnlp The first problem was that icedtea-web was trying to ensure that all jnlps, including extension jnlps have a main class. I wonder what other applications were broken by this check. This patch modifies the check to only check for main class when a main class is possible (applets and applications). The second second problem was that (in the extension jnlp file) the jnlp element did not contain a codebase attribute. IcedTea-Web tried to add this null codebase when merging the jnlp file, causing an exception. The patch simply ignores this null. 2012-01-05 Omair Majid <omajid@redhat.com> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java (initializeResources): Only throw exceptions about the main class not being found when the jnlp file can have a main class. (addToCodeBaseLoader): Dont try to process null URLs.
author Omair Majid <omajid@redhat.com>
date Fri, 06 Jan 2012 12:14:56 -0500
parents 64979652c3b7
children 41f03d932cdf
files ChangeLog netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
diffstat 2 files changed, 18 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Jan 05 17:33:06 2012 +0100
+++ b/ChangeLog	Fri Jan 06 12:14:56 2012 -0500
@@ -1,3 +1,10 @@
+2012-01-05  Omair Majid <omajid@redhat.com>
+
+	* netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
+	(initializeResources): Only throw exceptions about the main class not
+	being found when the jnlp file can have a main class.
+	(addToCodeBaseLoader): Dont try to process null URLs.
+
 2011-12-15  Jiri Vanek  <jvanek@redhat.com>
 
 	* configure.ac: added search for xsltproc program and setting
--- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java	Thu Jan 05 17:33:06 2012 +0100
+++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java	Fri Jan 06 12:14:56 2012 -0500
@@ -488,11 +488,14 @@
 
                 // If jar with main class was not found and there are no more
                 // available jars, throw a LaunchException
-                if (!foundMainJar
-                        && (available == null || available.size() == 0))
-                    throw new LaunchException(file, null, R("LSFatal"),
-                            R("LCClient"), R("LCantDetermineMainClass"),
-                            R("LCantDetermineMainClassInfo"));
+                if (file.getLaunchInfo() instanceof AppletDesc ||
+                    file.getLaunchInfo() instanceof ApplicationDesc) {
+                    if (!foundMainJar
+                            && (available == null || available.size() == 0))
+                        throw new LaunchException(file, null, R("LSFatal"),
+                                R("LCClient"), R("LCantDetermineMainClass"),
+                                R("LCantDetermineMainClassInfo"));
+                }
 
                 // If main jar was found, but a signed JNLP file was not located
                 if (!isSignedJNLP && foundMainJar) 
@@ -1700,6 +1703,9 @@
      * @throws IllegalArgumentException If the given url is not a path
      */
     private void addToCodeBaseLoader(URL u) {
+        if (u == null) {
+            return;
+        }
 
         // Only paths may be added
         if (!u.getFile().endsWith("/")) {