Menu Close

Java Version 7 Update 45 Released

Java version 7 update 45 has been released by Oracle.  This is the latest version available for users who run Java on their PCs.  Java is a programming language and computing platform.  It is also a software package that runs on more than 850 million personal computers worldwide.  There are lots of applications and websites that will not work properly unless you have Java installed.

 

Bug Fixes

This release contains fixes for security vulnerabilities.

Known Issues

Area: Deployment/PlugIn
Synopsis: JavaScript-> Java (LiveConnect) call fails silently if JavaScript/HTML and unsigned JAR/class files comes from different codebase host.

If the portion of the codebase that specifies the protocol, host, and port, are not the same for the unsigned JAR file (or class files) as for the JavaScript or HTML, the code will fail without a mixed code dialog warning.

You can work around this using one of the following approaches:

  • Put the JAR files (or class files) and the HTML/JavaScript on the same host.
  • Sign the JAR files. (Self signed can cause the LiveConnect dialog to show already; or add a manifest file that specifies the Caller-Allowable-Codebase attribute.)
  • Use the Deployment Rule Set (DRS) to allow the app and HTML to run without a warning.

When specifying the codebase, using the Caller-Allowable-Codebase attribute or the Deployment Rule Set, make sure to list the domain where the JavaScript/HTML is hosted.

Area: Deployment/Plugin
Synopsis: Using the family CLSID to trigger loading of an applet does not work with certain JRE family versions.

If you use the family CLSID to trigger loading of an applet with a certain JRE family version, the family CLISD will be ignored and the latest JRE version installed on your system is used to load the applet instead. Family CLSID is specific to Internet Explorer. The workaround is to use the java_version applet parameter or the version attribute of the Java element in JNLP file instead.

 

Area: Deployment/Plugin
Synopsis: Certificate-based DRS rule does not work when main JAR is in nested resource block

The certificate-based Deployment Rule Set rule does not work properly for JNLP applications when the main JNLP file has no JAR files, or all JAR files are in nested resource blocks nested in <java> or <j2se> elements.

Area: Deployment/Plugin
Synopsis: Caller-Allowable-Codebase may be ignored when used with Trusted-Library.

If a trusted, signed JAR file is using the Caller-Allowable-Codebase manifest attribute along with Trusted-Library then the Caller-Allowable-Codebase manifest entry will be ignored and, as a result, a JavaScript -> Java call will show the native LiveConnect warning. The workaround is to remove the Trusted-Library manifest entry.

 

Area: Deployment/Plugin
Synopsis: Applet could fail to load by throwing NPE if pack compression is used with deployment caching disabled.

If a JAR file is using pack compression with manifest entries Permissions and Caller-Allowable-Codebase while deployment caching is disabled, then:

  • The Permissions manifest entry will be ignored. (This can be seen from the fact that yellow warning is there on security dialog even though the Permissions attribute is there.) This only happens if Caller-Allowable-Codebase attribute is present along with the Permissions attribute.
  • The Caller-Allowable-Codebase attribute will cause the applet to fail to load by throwing a java.lang.NullPointerException.

If you want to use pack compression with the Caller-Allowable-Codebase attribute, there are two possible workarounds:

  • Enable caching and all issues listed will disappear.
  • Do not use the pack property jnlp.packEnabled=true while deploying the applets using Caller-Allowable-Codebase and premissions property. Instead use the ContentType servlet for serving the pack files.

Area: Deployment/Plugin
Synopsis: Non-JNLP trusted applet fails to load using the file:\ URL.

Local trusted applets that do not deploy using a JNLP file will fail to load by throwing a java.lang.NullPointerException. You can work around this issue by using one of the following methods:

  • Use a JNLP file to launch the applet.
  • Try loading the applet over HTTP or HTTPS.

Area: Deployment/Plugin
Synopsis: JNLP applet fails to load if using JNLP versioning.

Due to this bug, if you are using the jnlp.versionEnabled property for JAR versioning in your browser applet, your applet might not start. Also users might see a yellow warning about a missing Permissions attribute in the following two scenarios:

  • The jnlp.versionEnabled property is set to false inside the JNLP file and the version is defined against the main JAR file.
  • You use JNLPDownloadServlet for version download support.

The workaround is to either not use versioning via jnlp.versionEnabled, or to use the JNLPDownloadServlet servlet for version support instead.

Area:: client-libs/AWT
Synopsis: Using RMI from a restricted environment may cause a NullPointerException.

If an application uses RMI and runs in a restricted environment (ie. Java Plugin, Java Web Start), it may not work. In particular, if you run a UI from an RMI callback, a NullPointerException is likely to be thrown.

 

New Features and Changes

Protections Against Unauthorized Redistribution of Java Applications

Starting with 7u45, application developers can specify new JAR manifest file attributes:

Application-Name: This attribute provides a secure title for your RIA.

Caller-Allowable-Codebase: This attribute specifies the codebase/locations from which JavaScript is allowed to call Applet classes.

JavaScript to Java calls will be allowed without any security dialog prompt only if:

  • JAR is signed by a trusted CA, has the Caller-Allowable-Codebase manifest entry and JavaScript runs on the domain that matches it.
  • JAR is unsigned and JavaScript calls happens from the same domain as the JAR location.

The JavaScript to Java (LiveConnect) security dialog prompt is shown once per Applet classLoader instance.

Application-Library-Allowable-Codebase: If the JNLP file or HTML page is in a different location than the JAR file, the Application-Library-Allowable-Codebase attribute identifies the locations from which your RIA can be expected to be started.

If the attribute is not present or if the attribute and location do not match, then the location of the JNLP file or HTML page is displayed in the security prompt shown to the user.

Note that the RIA can still be started in any of the above cases.

Developers can refer to JAR File Manifest Attributes for more information.

Restore Security Prompts

A new button is available in the Java Control Panel (JCP) to clear previously remembered trust decisions. A trust decision occurs when the user has selected the Do not show this again option in a security prompt. To show prompts that were previously hidden, click Restore Security Prompts. When asked to confirm the selection, click Restore All. The next time an application is started, the security prompt for that application is shown.

See Restore Security Prompts under the Security section of the Java Control Panel.

JAXP Changes

Starting from JDK 7u45, the following new processing limits are added to the JAXP FEATURE_SECURE_PROCESSING feature.

  • totalEntitySizeLimit
  • maxGeneralEntitySizeLimit
  • maxParameterEntitySizeLimit

For more information, see the new Processing Limits lesson in the JAXP Tutorial.

TimeZone.setDefault Change

The java.util.TimeZone.setDefault(TimeZone) method has been changed to throw a SecurityException if the method is called by any code with which the security manager’s checkPermission call denies PropertyPermission("user.timezone", "write"). The new system property jdk.util.TimeZone.allowSetDefault (a boolean) is provided so that the compatible behavior can be enabled. The property will be evaluated only once when the java.util.TimeZone class is loaded and initialized.

 

Java is one of the applications that is managed and updated by ODS.  If you are a current customer, ODS will automatically update your version of Java over the next few days.  The update will install silently.  No user interaction is required.  There are no additional fees or charges for ODS to update your version of Java.   

If you would like assistance managing and deploying Java for PCs, please contact H Tech Solutions using the URL below.
Creative Commons License
H Tech Solutions Blog by Harris Schneiderman is licensed under a Creative Commons Attribution 4.0 International License.
Permissions beyond the scope of this license may be available at https://htechsolutions.biz/contact-us