JDK-8034816 : Old version of jnlp file is used
  • Type: Bug
  • Component: deploy
  • Sub-Component: webstart
  • Affected Version: 8
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: windows_7
  • CPU: x86_64
  • Submitted: 2014-02-12
  • Updated: 2015-03-05
  • Resolved: 2014-03-26
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 JDK 9
8u20 b09Fixed 9Fixed
Related Reports
Duplicate :  
Relates :  
Description
FULL PRODUCT VERSION :
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b128)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b69, mixed mode)

ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 6.1.7601]

EXTRA RELEVANT SYSTEM CONFIGURATION :
Web server: apache 2.4 hosted on Windows Server 2012

A DESCRIPTION OF THE PROBLEM :
When the jnlp file is updated on the server, the client downloads the latest version but javaws seems to run the previous version anyway.

jnlp file contains:
  <update check="always" policy="always"/>

and a version number:
<jnlp spec="7.0+" href="bigblue.jnlp" version="1.3">

Typically, when some of the dependencies are updated, JavaWS reports an error and looking at the details shows an old version of the jnlp file.

The web server log looks like below (so the new version is downloaded several times):

[Wed Feb 12 18:07:24.225453 2014] [core:trace5] [pid 4068:tid 852] protocol.c(616): [client 192.168.3.42:52623] Request received from client: GET /big_blue/bigblue.jnlp HTTP/1.1
[Wed Feb 12 18:07:24.225453 2014] [http:trace4] [pid 4068:tid 852] http_request.c(300): [client 192.168.3.42:52623] Headers received from client:
[Wed Feb 12 18:07:24.225453 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52623]   accept-encoding: gzip
[Wed Feb 12 18:07:24.225453 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52623]   User-Agent: JNLP/1.7.0 javaws/11.0.2.128 (<internal>) Java/1.8.0
[Wed Feb 12 18:07:24.225453 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52623]   UA-Java-Version: 1.8.0
[Wed Feb 12 18:07:24.225453 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52623]   Cache-Control: no-cache
[Wed Feb 12 18:07:24.225453 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52623]   Pragma: no-cache
[Wed Feb 12 18:07:24.225453 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52623]   Host: 192.168.3.86
[Wed Feb 12 18:07:24.225453 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52623]   Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
[Wed Feb 12 18:07:24.225453 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52623]   Connection: keep-alive
[Wed Feb 12 18:07:24.225453 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52623]   If-Modified-Since: Tue, 11 Feb 2014 00:48:29 GMT
[Wed Feb 12 18:07:24.225453 2014] [authz_core:debug] [pid 4068:tid 852] mod_authz_core.c(799): [client 192.168.3.42:52623] AH01626: authorization result of Require all granted: granted
[Wed Feb 12 18:07:24.225453 2014] [authz_core:debug] [pid 4068:tid 852] mod_authz_core.c(799): [client 192.168.3.42:52623] AH01626: authorization result of <RequireAny>: granted
[Wed Feb 12 18:07:24.225453 2014] [core:trace3] [pid 4068:tid 852] request.c(236): [client 192.168.3.42:52623] request authorized without authentication by access_checker_ex hook: /big_blue/bigblue.jnlp
[Wed Feb 12 18:07:24.225453 2014] [http:trace3] [pid 4068:tid 852] http_filters.c(960): [client 192.168.3.42:52623] Response sent with status 200, headers:
[Wed Feb 12 18:07:24.225453 2014] [http:trace5] [pid 4068:tid 852] http_filters.c(969): [client 192.168.3.42:52623]   Date: Wed, 12 Feb 2014 18:07:24 GMT
[Wed Feb 12 18:07:24.225453 2014] [http:trace5] [pid 4068:tid 852] http_filters.c(972): [client 192.168.3.42:52623]   Server: Apache/2.4.6 (Win64) PHP/5.5.6
[Wed Feb 12 18:07:24.225453 2014] [http:trace4] [pid 4068:tid 852] http_filters.c(804): [client 192.168.3.42:52623]   Last-Modified: Wed, 12 Feb 2014 18:06:52 GMT
[Wed Feb 12 18:07:24.225453 2014] [http:trace4] [pid 4068:tid 852] http_filters.c(804): [client 192.168.3.42:52623]   ETag: \\"9bd-4f2396ff92d4e\\"
[Wed Feb 12 18:07:24.225453 2014] [http:trace4] [pid 4068:tid 852] http_filters.c(804): [client 192.168.3.42:52623]   Accept-Ranges: bytes
[Wed Feb 12 18:07:24.225453 2014] [http:trace4] [pid 4068:tid 852] http_filters.c(804): [client 192.168.3.42:52623]   Content-Length: 2493
[Wed Feb 12 18:07:24.225453 2014] [http:trace4] [pid 4068:tid 852] http_filters.c(804): [client 192.168.3.42:52623]   Keep-Alive: timeout=5, max=100
[Wed Feb 12 18:07:24.225453 2014] [http:trace4] [pid 4068:tid 852] http_filters.c(804): [client 192.168.3.42:52623]   Connection: Keep-Alive
[Wed Feb 12 18:07:24.225453 2014] [http:trace4] [pid 4068:tid 852] http_filters.c(804): [client 192.168.3.42:52623]   Content-Type: application/x-java-jnlp-file
[Wed Feb 12 18:07:24.225453 2014] [core:trace6] [pid 4068:tid 852] core_filters.c(523): [client 192.168.3.42:52623] core_output_filter: flushing because of FLUSH bucket
[Wed Feb 12 18:07:24.225453 2014] [core:trace6] [pid 4068:tid 852] core_filters.c(523): [client 192.168.3.42:52623] core_output_filter: flushing because of FLUSH bucket
[Wed Feb 12 18:07:24.241084 2014] [core:trace5] [pid 4068:tid 852] protocol.c(616): [client 192.168.3.42:52624] Request received from client: GET /big_blue/bigblue.jnlp HTTP/1.1
[Wed Feb 12 18:07:24.241084 2014] [http:trace4] [pid 4068:tid 852] http_request.c(300): [client 192.168.3.42:52624] Headers received from client:
[Wed Feb 12 18:07:24.241084 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52624]   accept-encoding: gzip
[Wed Feb 12 18:07:24.241084 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52624]   User-Agent: JNLP/1.7.0 javaws/11.0.2.128 (<internal>) Java/1.8.0
[Wed Feb 12 18:07:24.241084 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52624]   UA-Java-Version: 1.8.0
[Wed Feb 12 18:07:24.241084 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52624]   Cache-Control: no-cache
[Wed Feb 12 18:07:24.241084 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52624]   Pragma: no-cache
[Wed Feb 12 18:07:24.241084 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52624]   Host: 192.168.3.86
[Wed Feb 12 18:07:24.241084 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52624]   Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
[Wed Feb 12 18:07:24.241084 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52624]   Connection: keep-alive
[Wed Feb 12 18:07:24.241084 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52624]   If-Modified-Since: Tue, 11 Feb 2014 00:48:29 GMT
[Wed Feb 12 18:07:24.241084 2014] [authz_core:debug] [pid 4068:tid 852] mod_authz_core.c(799): [client 192.168.3.42:52624] AH01626: authorization result of Require all granted: granted
[Wed Feb 12 18:07:24.241084 2014] [authz_core:debug] [pid 4068:tid 852] mod_authz_core.c(799): [client 192.168.3.42:52624] AH01626: authorization result of <RequireAny>: granted
[Wed Feb 12 18:07:24.241084 2014] [core:trace3] [pid 4068:tid 852] request.c(236): [client 192.168.3.42:52624] request authorized without authentication by access_checker_ex hook: /big_blue/bigblue.jnlp
[Wed Feb 12 18:07:24.241084 2014] [http:trace3] [pid 4068:tid 852] http_filters.c(960): [client 192.168.3.42:52624] Response sent with status 200, headers:
[Wed Feb 12 18:07:24.241084 2014] [http:trace5] [pid 4068:tid 852] http_filters.c(969): [client 192.168.3.42:52624]   Date: Wed, 12 Feb 2014 18:07:24 GMT
[Wed Feb 12 18:07:24.241084 2014] [http:trace5] [pid 4068:tid 852] http_filters.c(972): [client 192.168.3.42:52624]   Server: Apache/2.4.6 (Win64) PHP/5.5.6
[Wed Feb 12 18:07:24.241084 2014] [http:trace4] [pid 4068:tid 852] http_filters.c(804): [client 192.168.3.42:52624]   Last-Modified: Wed, 12 Feb 2014 18:06:52 GMT
[Wed Feb 12 18:07:24.241084 2014] [http:trace4] [pid 4068:tid 852] http_filters.c(804): [client 192.168.3.42:52624]   ETag: \\"9bd-4f2396ff92d4e\\"
[Wed Feb 12 18:07:24.241084 2014] [http:trace4] [pid 4068:tid 852] http_filters.c(804): [client 192.168.3.42:52624]   Accept-Ranges: bytes
[Wed Feb 12 18:07:24.241084 2014] [http:trace4] [pid 4068:tid 852] http_filters.c(804): [client 192.168.3.42:52624]   Content-Length: 2493
[Wed Feb 12 18:07:24.241084 2014] [http:trace4] [pid 4068:tid 852] http_filters.c(804): [client 192.168.3.42:52624]   Keep-Alive: timeout=5, max=100
[Wed Feb 12 18:07:24.241084 2014] [http:trace4] [pid 4068:tid 852] http_filters.c(804): [client 192.168.3.42:52624]   Connection: Keep-Alive
[Wed Feb 12 18:07:24.241084 2014] [http:trace4] [pid 4068:tid 852] http_filters.c(804): [client 192.168.3.42:52624]   Content-Type: application/x-java-jnlp-file
[Wed Feb 12 18:07:24.241084 2014] [core:trace6] [pid 4068:tid 852] core_filters.c(523): [client 192.168.3.42:52624] core_output_filter: flushing because of FLUSH bucket
[Wed Feb 12 18:07:24.287960 2014] [core:trace5] [pid 4068:tid 852] protocol.c(616): [client 192.168.3.42:52624] Request received from client: GET /big_blue/bigblue.jnlp HTTP/1.1
[Wed Feb 12 18:07:24.287960 2014] [http:trace4] [pid 4068:tid 852] http_request.c(300): [client 192.168.3.42:52624] Headers received from client:
[Wed Feb 12 18:07:24.287960 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52624]   accept-encoding: gzip
[Wed Feb 12 18:07:24.287960 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52624]   User-Agent: JNLP/1.7.0 javaws/11.0.2.128 (<internal>) Java/1.8.0
[Wed Feb 12 18:07:24.287960 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52624]   UA-Java-Version: 1.8.0
[Wed Feb 12 18:07:24.287960 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52624]   Cache-Control: no-cache
[Wed Feb 12 18:07:24.287960 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52624]   Pragma: no-cache
[Wed Feb 12 18:07:24.287960 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52624]   Host: 192.168.3.86
[Wed Feb 12 18:07:24.287960 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52624]   Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
[Wed Feb 12 18:07:24.287960 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52624]   Connection: keep-alive
[Wed Feb 12 18:07:24.287960 2014] [http:trace4] [pid 4068:tid 852] http_request.c(303): [client 192.168.3.42:52624]   If-Modified-Since: Wed, 12 Feb 2014 18:06:52 GMT
[Wed Feb 12 18:07:24.287960 2014] [authz_core:debug] [pid 4068:tid 852] mod_authz_core.c(799): [client 192.168.3.42:52624] AH01626: authorization result of Require all granted: granted
[Wed Feb 12 18:07:24.287960 2014] [authz_core:debug] [pid 4068:tid 852] mod_authz_core.c(799): [client 192.168.3.42:52624] AH01626: authorization result of <RequireAny>: granted
[Wed Feb 12 18:07:24.287960 2014] [core:trace3] [pid 4068:tid 852] request.c(236): [client 192.168.3.42:52624] request authorized without authentication by access_checker_ex hook: /big_blue/bigblue.jnlp
[Wed Feb 12 18:07:24.287960 2014] [http:trace3] [pid 4068:tid 852] http_filters.c(960): [client 192.168.3.42:52624] Response sent with status 304, headers:
[Wed Feb 12 18:07:24.287960 2014] [http:trace5] [pid 4068:tid 852] http_filters.c(969): [client 192.168.3.42:52624]   Date: Wed, 12 Feb 2014 18:07:24 GMT
[Wed Feb 12 18:07:24.287960 2014] [http:trace5] [pid 4068:tid 852] http_filters.c(972): [client 192.168.3.42:52624]   Server: Apache/2.4.6 (Win64) PHP/5.5.6

REGRESSION.  Last worked in version 7u25

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Create a simple jnlp with a version number:

<jnlp spec="7.0+" href="bigblue.jnlp" version="1.0">

Enable tracing on the client.
Run the application from the client.
Verify that the log file shows version 1.0

Modify the jnlp to 

<jnlp spec="7.0+" href="bigblue.jnlp" version="1.1">

Run the application from the client.
>>> THE LOG FILE SHOWS VERSION 1.0 AGAIN <<<<

Run the application from the client.
The log file shows version 1.1 as expected.

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The latest version of the jnlp when an update is performed on the server.

REPRODUCIBILITY :
This bug can be reproduced always.

CUSTOMER SUBMITTED WORKAROUND :
Launching the application a second time runs the newest version of the jnlp file as expected, but it always requires one failed launch before it works.


Comments
Passed in jdf run against b15 http://aurora.ru.oracle.com/functional/faces/RunDetails.xhtml?names=496408.SCA-DEP-PROMOTION-1
18-06-2014

regression_test_src: http://sqe-hgi.us.oracle.com/hg/index.cgi/8/deployment_int_ws/file/1d2acb3d41f8/new_framework/tests/javaws/jarUpdate/src/JarUpdateTest.java
09-04-2014

Crucible review is at https://java.se.oracle.com/code/cru/CR-JDK9CLIENT-149
21-03-2014

Affected tests: JarUpdateTest::testJnlpAlwaysAlways
11-03-2014

Release team: Approved for deferral.
18-02-2014

SQE-OK to defer this issue to 8u20
13-02-2014

defer request to 8u20.
13-02-2014

Deferral justification: it is not a show stopper and happens only when jnlp was updated on the server and workaround is easy (start application second time).
13-02-2014

Impact- High (regression), Likelihood -Medium, Workraround - Low (start application second time or clear cache in JCP) => Priority P2
13-02-2014