From: Ben Soares Date: Mon, 30 Dec 2019 01:55:26 +0000 (+0000) Subject: JAL-3394 catch a null pointer exception, when URI not parsed but not malformed ??? X-Git-Tag: Develop-2_11_2_0-d20201215~80^2~28^2~6 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=b9ab2bbb4c8e913ccbc28b24081786f9d325f854;p=jalview.git JAL-3394 catch a null pointer exception, when URI not parsed but not malformed ??? --- diff --git a/getdown/lib/getdown-core.jar b/getdown/lib/getdown-core.jar index 49e0431..5f3f9f0 100644 Binary files a/getdown/lib/getdown-core.jar and b/getdown/lib/getdown-core.jar differ diff --git a/getdown/lib/getdown-launcher-local.jar b/getdown/lib/getdown-launcher-local.jar index 8ddc526..c976354 100644 Binary files a/getdown/lib/getdown-launcher-local.jar and b/getdown/lib/getdown-launcher-local.jar differ diff --git a/getdown/lib/getdown-launcher.jar b/getdown/lib/getdown-launcher.jar index b44d887..a10b5d4 100644 Binary files a/getdown/lib/getdown-launcher.jar and b/getdown/lib/getdown-launcher.jar differ diff --git a/getdown/src/getdown/core/src/main/java/com/threerings/getdown/data/Application.java b/getdown/src/getdown/core/src/main/java/com/threerings/getdown/data/Application.java index 1e53d62..4184953 100644 --- a/getdown/src/getdown/core/src/main/java/com/threerings/getdown/data/Application.java +++ b/getdown/src/getdown/core/src/main/java/com/threerings/getdown/data/Application.java @@ -1096,45 +1096,48 @@ public class Application try { log.info("TRYING TO PARSE URL '"+uri+"'"); URI jalviewUri = new URI(uri); - if (jalviewUri.getScheme().equals("jalview") || jalviewUri.getScheme().equals("jalviews")) { - boolean https = jalviewUri.getScheme().equals("jalviews"); - String host = jalviewUri.getHost(); - int port = jalviewUri.getPort(); - String file = jalviewUri.getPath(); - String ref = jalviewUri.getFragment(); - String query = jalviewUri.getQuery(); - - _appargs.clear(); - _appargs.add("-open"); - if (host != null && host.length() > 0) { - URL newUrl = new URL( - (https?"https":"http") - + "://" - + host - + (port > -1? String.valueOf(port) : "") - + jalviewUri.getRawPath() - + (query != null && query.length() > 0 ? "?" + jalviewUri.getRawQuery() : "") - ); - _appargs.add(newUrl.toString()); - } else { - _appargs.add(file); - } - - if (ref != null && ref.length() > 0) { - String[] refArgs = ref.split("&"); - for (String refArg : refArgs) { - if (refArg.startsWith("jvmmempc=")) { - jvmmempc = refArg.substring(9); - continue; - } - if (refArg.startsWith("jvmmemmax=")) { - jvmmemmax = refArg.substring(10); - continue; + if (jalviewUri != null) { + String scheme = jalviewUri.getScheme(); + if (scheme != null && (scheme.equals("jalview") || scheme.equals("jalviews"))) { + boolean https = jalviewUri.getScheme().equals("jalviews"); + String host = jalviewUri.getHost(); + int port = jalviewUri.getPort(); + String file = jalviewUri.getPath(); + String ref = jalviewUri.getFragment(); + String query = jalviewUri.getQuery(); + + _appargs.clear(); + _appargs.add("-open"); + if (host != null && host.length() > 0) { + URL newUrl = new URL( + (https?"https":"http") + + "://" + + host + + (port > -1? String.valueOf(port) : "") + + jalviewUri.getRawPath() + + (query != null && query.length() > 0 ? "?" + jalviewUri.getRawQuery() : "") + ); + _appargs.add(newUrl.toString()); + } else { + _appargs.add(file); + } + + if (ref != null && ref.length() > 0) { + String[] refArgs = ref.split("&"); + for (String refArg : refArgs) { + if (refArg.startsWith("jvmmempc=")) { + jvmmempc = refArg.substring(9); + continue; + } + if (refArg.startsWith("jvmmemmax=")) { + jvmmemmax = refArg.substring(10); + continue; + } + _appargs.add(URLDecoder.decode(refArg, "UTF-8")); } - _appargs.add(URLDecoder.decode(refArg, "UTF-8")); } + } - } } catch (URISyntaxException e) { log.error("Malformed jalview URI", uri); diff --git a/j11lib/getdown-core.jar b/j11lib/getdown-core.jar index 49e0431..5f3f9f0 100644 Binary files a/j11lib/getdown-core.jar and b/j11lib/getdown-core.jar differ diff --git a/j8lib/getdown-core.jar b/j8lib/getdown-core.jar index 49e0431..5f3f9f0 100644 Binary files a/j8lib/getdown-core.jar and b/j8lib/getdown-core.jar differ