Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java 8 Update 91 Web Start Application Has Long Startup Delay

Tags:

java

delay

java-8

We have a set of Java applications that we have been developing for years that are launched remotely via Web Start. After updating to Java SE 8 Update 91 there is a very significant pause (20-60 seconds depending on the application) in the startup process with no indication to the typical user that anything is happening. This pause occurs after Java's "Starting Application" dialog closes and before the application is launched.

The length of the pause appears to be correlated with the size of the application. Reverting to Java 8 Update 77 eliminates the pause altogether, and these same applications start without any pause.

Our applications do request "all-permissions" as we need to read/write data to the client's drive for caching purposes. So all of our jars are signed and have the necessary manifest modifications.

If your Java settings have the Java console enabled then the console is displayed immediately following Java's "Starting Application" dialog that appears when the application's JNLP file is accessed. However, no activity is seen in the console during this pause (for instance none of the typical Java class loading messages appear until after the pause and none of our code in the "main" method is executed until after the pause).

Some of these applications are fairly large. The code we've written is about 10-12MB, and additional resources total between 15-20MB depending on the application.

I found a JDK bug report that sounds very similar... bug report This report states that using an older Java version results in instant startup if the Java cache is removed before the first start. The issue that I'm reporting does not seem to be impacted by the Java cache. Reverting to Java 8 Update 77 results in instant startup without deleting the Java cache.

The Java release notes for Java 8 Update 91 mention a bug fix "Regression in Applet startup time fixed". But I don't see anything that would indicate an intentional change that would result in a long pause during startup (such as increased security scanning, etc).

With this length of pause in startup and no ability to indicate to the user that something is happening we are getting complaints about the applications.

Any help would be greatly appreciated.

UPDATE July 1, 2016...

I found this SO question that seems to describe the identical symptoms: similar issue. However, it was related to Java 7 Update 40. And the resolution was to disable the revocation check in the deployment.properties file.

I have used the Java console to set "Do not check" for both "Perform signed code certificate revocation checks on" and "Perform TLS certificate revocation checks on". And I checked to make sure that the changes are reflected in the deployment.properties file. However, these setting do not fix or improve the issue at all.

If this had worked it would be a great indicator of the problem, but it would not be a useful "solution" to have clients turn off these revocation checks in their advanced settings. It especially wouldn't be helpful for the general public that have access to a number of our applications.

UPDATE July 7, 2016...

Based on the comment by jaivalis I downloaded the early access release of the Java 8 Update 112 JRE. When I run our applications with this JRE there is no pause at all. The applications run immediately after the "Starting Application" dialog closes.

So far I can't find any notes that explain why this would be. I am hoping this "fix" isn't the result of new security measures that have not been completely applied to this early access release. I'm hoping that something has actually been addressed and that the immediate launch performance will remain when this release is official.

By the way I cannot find an official release date for Java 8 Update 112. I was hoping it would happen in July, but I see some indications of October. Anyone have any information on when this update will be generally available?

Here is the early access page for Java 8 Update 112 early access
Here is the release date info I found Java 8 Update 112 release timeline

This page also mentions a Java 8 Update 102, but I can't find an early access release for that update. Any links I find point to the 112 update.

like image 688
Rob Avatar asked Jun 30 '16 20:06

Rob


1 Answers

This issue has been resolved with the Java 8 update 101 release (technically build 1.8.0_101-b13).

like image 117
Rob Avatar answered Sep 27 '22 21:09

Rob