changeset 1399:f85171464566

javaws made to understand jnlp "network protokol" * NEWS: mentioned jnlp protocol * netx/net/sourceforge/jnlp/runtime/Boot.java: when main or jnlp argument starts with jnlp(s): then it is substituted by htt
author Jiri Vanek <jvanek@redhat.com>
date Mon, 24 Apr 2017 17:04:13 +0200
parents 0789465aecc8
children 3deb4b2e0213
files ChangeLog NEWS netx/net/sourceforge/jnlp/runtime/Boot.java
diffstat 3 files changed, 14 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon Apr 24 17:01:19 2017 +0200
+++ b/ChangeLog	Mon Apr 24 17:04:13 2017 +0200
@@ -1,3 +1,10 @@
+2017-04-24  Jiri Vanek <jvanek@redhat.com>
+
+	javaws made to understand jnlp "network protokol"
+	* NEWS: mentioned jnlp protocol
+	* netx/net/sourceforge/jnlp/runtime/Boot.java: when main or jnlp argument starts with
+	jnlp(s): then it is substituted by http(s)
+
 2017-04-24  Jiri Vanek <jvanek@redhat.com>
 
 	* netx/net/sourceforge/jnlp/cache/ResourceUrlCreator.java: https preffered over http
--- a/NEWS	Mon Apr 24 17:01:19 2017 +0200
+++ b/NEWS	Mon Apr 24 17:04:13 2017 +0200
@@ -9,6 +9,7 @@
 CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
 
 New in release 1.7 (2015-XX-XX):
+* added experimental support for jnlp protocol (see https://bugs.openjdk.java.net/browse/JDK-8055464)
 * restricted to JDK8 and higher
 * all connection restrictions now consider also port
 * Enabled Entry-Point attribute check
--- a/netx/net/sourceforge/jnlp/runtime/Boot.java	Mon Apr 24 17:01:19 2017 +0200
+++ b/netx/net/sourceforge/jnlp/runtime/Boot.java	Mon Apr 24 17:04:13 2017 +0200
@@ -232,6 +232,10 @@
         OutputController.getLogger().printOut(itwInfoMessage);
     }
 
+    private static String fixJnlpProtocol(String param) {
+        return param.replaceFirst("^jnlp:", "http:").replaceFirst("^jnlps:", "https:");
+    }
+
     /**
      * The privileged part (jdk1.3 compatibility).
      */
@@ -310,11 +314,11 @@
                 || (optionParser.hasOption(OptionsDefinitions.OPTIONS.JNLP) && optionParser.hasOption(OptionsDefinitions.OPTIONS.HTML))) {
             throw new InvalidArgumentException(optionParser.getMainArgs().toString());
         } else if (optionParser.hasOption(OptionsDefinitions.OPTIONS.JNLP)) {
-            return optionParser.getParam(OptionsDefinitions.OPTIONS.JNLP);
+            return fixJnlpProtocol(optionParser.getParam(OptionsDefinitions.OPTIONS.JNLP));
         } else if (optionParser.hasOption(OptionsDefinitions.OPTIONS.HTML)) {
             return optionParser.getParam(OptionsDefinitions.OPTIONS.HTML);
         } else if (optionParser.mainArgExists()) {
-            return optionParser.getMainArg();
+            return fixJnlpProtocol(optionParser.getMainArg());
         }
 
         handleMessage();