aboutsummaryrefslogtreecommitdiffstats
path: root/netx/net
diff options
context:
space:
mode:
authorOmair Majid <[email protected]>2012-01-06 12:14:56 -0500
committerOmair Majid <[email protected]>2012-01-06 12:14:56 -0500
commit12ea54672f72e38a5913377bf07f50cb14f51a18 (patch)
treeee1c7bd0e0cc7a4b992a3f6c028514381a6c11ea /netx/net
parent42ebca4eabae80b09799690c318967d7485f9c0e (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.java16
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("/")) {