JDK-8043478 : Oracle Linux 5.x: Expired JRE disabled in the browser automatically and no native dialog prompting for the JRE update
  • Type: Bug
  • Component: deploy
  • Sub-Component: plugin
  • Affected Version: 8u11
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: linux_oracle_5.6
  • CPU: generic
  • Submitted: 2014-05-19
  • Updated: 2014-12-02
  • Resolved: 2014-06-05
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.
7u71Fixed 8u20Fixed 9Fixed
A)  Problem Description: : On Oracle Linux (OEL 5.8)/ FF 17 with expired JRE, 
   1) User has no chance to see the native dialog prompting for the JRE update at all.. Instead,  when invoking an applet in Firefox, they get the message of "Disabling Java as it is too old and likely to be out of date. To reenable use jcontrol utility"
   2) Follow the instruction in #1 to reenable java in the browser will lead user to loop back to the issue #1 over again

 B) Tested Configurations:
-  Oracle Linux Server release 5,8 ( OEL 5.8)
-  Firefox 17
-  jre 8u11-b08  promotion 

C) Steps to reproduce:

0) On OEL 5.x/ FF 17, install jre 8u11-b08 promotion
1) Configure Firefox to use jre 8u11-b08 java plug-in
2) Edit the <baseline.versions> to make jre 8u11 an expired JRE
3) Open the java control panel/security tab and  make sure that Java is enable in the browser
4) Open firefox and make sure 8u11-b08 java plug-in is enable
5) Use Fifrefox to load an applet e.g the verification applet from java.com

Expected:  A native dialog prompted for the option of JRE update
  -  No such dialog. The message displayed "
  -  Message of "Disabling Java as it is too old and likely to be out of date. To reenable use jcontrol utility"
displayed from the command prompt 
  - Java is automatically disable from Java control panel 
  - Follow the instruction to re-enable java again in the control panel will lead to the same issue over again

retargeted to 8u25 at SQE request

Not a showstopper for CPU14_04. SQE OK to defer the fix to CPU14_04. 8u20 ATR started on May 13. Would better to avoid the fix in 8u20.

pushed to 9-client: http://closedjdk.us.oracle.com/jdk9/client/deploy/rev/f0fb8a72856e after the fix, user can reenable java in browser in JCP - "deployment.expiration.decision" will be set to "later" for old gtk systems (instead of "undefined"), so deployment won't try to show expiration dialog again.

The used OEL 5.8x machine has the older version 2.10 (2.10.4-21.0.1.el5_7.7) The fact that GTK version is < required 2.14 for plugin to work, but we should check and don't put such users into the indefinite loop when they simply follow our own instruction such as "Disabling Java as it is too old and likely to be out of date. To reenable use jcontrol utility"

defer request to 8u20: not a showstopper for 14_03 at this point in the release cycle. This only affects Oracle Linux 5.x and versions of the gtk lower than 2.14.0

crucible review: https://java.se.oracle.com/code/cru/CR-JDK8UCPU-118

I was not able to reproduce this for my OEL 6.2, so probably this problem exists only for old versions. There are 2 cases when we print GTK_NOT_AVAILABLE_WARNING ("Disabling Java as it is too old..."): 1) Error when loading gtk lib - cannot open "libgtk-x11-2.0.so.0" or "libgtk-x11-2.0.so". One of these files should exist on test system. 2) gtk version is lower than 2.14.0 For both these cases we don't show the expiraion dialog and consider that selected action is BLOCK. so java applet will be blocked. Please check your gtk version (it should be at least 2.14). On other hand, after reenabling java in JCP, "deployment.expiration.decision" is set to "undefined" - so we try to show expiration dialog again (and again set "deployment.expiration.decision" to "block" as gkt version is old).