diff options
author | Omair Majid <[email protected]> | 2012-01-06 12:14:56 -0500 |
---|---|---|
committer | Omair Majid <[email protected]> | 2012-01-06 12:14:56 -0500 |
commit | 12ea54672f72e38a5913377bf07f50cb14f51a18 (patch) | |
tree | ee1c7bd0e0cc7a4b992a3f6c028514381a6c11ea /netx/net | |
parent | 42ebca4eabae80b09799690c318967d7485f9c0e (diff) |
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 <[email protected]>
* 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.
Diffstat (limited to 'netx/net')
-rw-r--r-- | netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java index dda154e..ba7f744 100644 --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java @@ -488,11 +488,14 @@ public class JNLPClassLoader extends URLClassLoader { // 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 @@ public class JNLPClassLoader extends URLClassLoader { * @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("/")) { |