JDK-8205343 : bug in backport of JDK-8185002
  • Type: Bug
  • Component: deploy
  • Sub-Component: webstart
  • Affected Version: 8u172
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2018-06-19
  • Updated: 2019-01-14
  • Resolved: 2018-06-24
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8
8u192 b01Fixed
Description
JDK-8185002 was directly backported from 10u to 8u including the two lines:
launchFile.c: 
        if (DEPLOY_STRCMP(name,SIS_SESSION_PROPERTY) == 0) {
launchfile.h:
#define SIS_SESSION_PROPERTY "jnlp.sis.session"

the problem is in 8u we define UNICODE and calls to DEPLOY_STRCMP require both args to be TCHAR*

when porting this line to 8u we should have had:
        if (DEPLOY_STRCMP(name,_T(SIS_SESSION_PROPERTY)) == 0) {

There are also several calls to DeployTraceOut (which also needs to pass TCHAR in 8u) which are passing plane strings (causing these debugging messages to not be seen).


Comments
Crucible review for 8u192: https://java.se.oracle.com/code/cru/CR-JDK8UDEV-486
22-06-2018

second problem, in launcher.c: if (jnlfile->sis_session_value != NULL) { sysStrNPrintF(tmp, MAXPATHLEN, "%s%c%s", jnlfile->canonicalHome, ':', jnlfile->sis_session_value); idString = tmp; } The "%s%c%s" also needs to be _T("%s%c%s") 1.) as a result of the first problem, if the jnlp file contains jnlp.sis.session property it will be ignored by the native code (due to the line in the description). 2.) when that is fixed, the second problem will cause a non-matching idString - and native code will not invoke SingleInstanceListener. This is a little hard to test for 2 reasons: 1.) normally, sqe tests invoke javaws with a URL, bypassing this native code. 2.) If the native code does not invoke Single Instance Listener (which was one result of this bug) , the java code still will, so the only noticeable effect is a slight startup performance regression.
22-06-2018