Known and Resolved Issues

This chapter lists high visibility bugs that have been addressed in these releases. It is not a complete listing of all of the bugs addressed. If you still have issues with any of these bugs, please file a new bug at http://bugreport.apple.com/ under the Java (new bugs) component, version X. Refer to the bug number indicated below in your new bug if you believe it is the same issue.

Java Application Support

Radar #8596933

Legacy .properties file based bundled apps crash on launch.

Description:

Very old non-Info.plist (.properties file) bundled applications crash on launch after installing the last Java software update.

Resolution:

This issue has been resolved.

Java Aqua LAF

Radar #8560601

Clicking on background of JDesktopPane throws NPE.

Description:

Under certain window activation states, clicking on the background of a JDesktopPane can cause a NullPointerException to be thrown.

Resolution:

This issue has been resolved.

Radar #8930094

JCheckboxes and JRadioButtons need an indeterminate state.

Description:

It is not possible to create a JCheckBox or JRadioButton with a mixed/indeterminate/partial selection state.

Resolution:

This issue has been resolved by adding a new client property to buttons: button.putClientProperty("JButton.selectedState", "indeterminate").

Java AWT

Radar #8733573

No way to attach 3D content to an out-of-process applet.

Description:

Due to the architecture of CoreGraphics drawing, it is not possible to attach a 3D rendering surface to an out-of-process applet. By adopting the CoreAnimation rendering model, and adding new API to the JAWT interface to Java, it is now possible to connect 3D accelerated graphics to Java component hierarchy which is connected to another processes rendering server.

Resolution:

This issue has been resolved. New API has been added to the jawt_md.h interface to allow a CALayer to be attached to an AWT component surface. See http://developer.apple.com/library/mac/#samplecode/JAWTExample for an example.

Java Core Frameworks

Radar #8810669

[JNFRunLoop performOnMainThreadWaiting:NO withBlock:] crashes.

Description:

The block passed to [JNFRunLoop performOnMainThreadWaiting:NO withBlock:] was not copied, and likely crashed if passed a stack allocated block.

Resolution:

This issue has been resolved.

Radar #8826835

JavaNativeFoundation has no weak JObjectWrapper class.

Description:

The JavaNativeFoundation framework contains a JNFJObjectWrapper class which holds a global ref to a Java object for the lifetime of the Objective-C wrapper. There is no corresponding type which weakly retains a global ref.

Resolution:

This issue has been resolved. JNFWeakJObjectWrapper is a subclass of JNFJObjectWrapper defined in JNFJObjectWrapper.h.

Java Deploy

Radar #8578486

Removing an invalid trust record from Java Preferences can throw NPE.

Description:

When removing certain invalid trust records from the Java Preferences "Security" tab, a NullPointerException could be thrown.

Resolution:

This issue has been partially resolved.

Radar #8882253

The trust record list in Java Preferences does not auto-update when adding new items.

Description:

If Java Preferences is open while a new trust record is added to the list (by trusting a signed applet, for example), the UI in the "Security" tab did not update.

Resolution:

This issue has been resolved.

Java Graphics

Radar #8319155

Quartz renderer fails runtime JNI checks.

Description:

Using -Dapple.awt.graphics.UseQuartz=true and -Xcheck:jni simultaneously results in many JNI Get/ReleasePrimitiveArrayCritical warnings.

Resolution:

This issue has been resolved.

Java HotSpot

Radar #7310730

-XX:+UseCompressedOops and -XX:+UseConcMarkSweepGC are incompatible.

Description:

In Java SE 6, the concurrent mark-and-sweep garbage collector was not compatible with the Java object pointer compression optimization for processes with smaller heaps in 64-bit. When attempting to use both of these options, the garbage collector was changed to the ParallelGC, and a warning was printed.

Resolution:

This issue has been resolved. Both CompressedOops and CMS may be used together.

Java Install

Radar #8577057

JDK headers missing from $JAVA_HOME.

Description:

Certain open source projects try to use $JAVA_HOME as the location to find Java headers. On OS X, this is undesirable, because the individual .jdk bundles can move around, and are not stable targets to link against. The JavaVM.framework exports all of the public headers and symbols of the JNI interface, and should be the only target to link against.

Resolution:

This issue has been resolved. The "include" directory in the 1.6.0.jdk is a symlink to the JavaVM.framework/Headers directory.

Java JDK

Radar #8806741

Headers missing from JavaVM.framework.

Description:

The previous release of Java for OS X removed headers from the JavaVM.framework, unless the Java Developer package was installed. This change was detrimental to several open source projects which relied on those headers.

Resolution:

This issue has been resolved. The headers for the JavaVM.framework and its sub-frameworks are now delivered with the manual and auto Java software update packages.

Java Plugin2

Radar #7631696

Impossible to tell which applet spawned a Dock icon.

Description:

Applets which open their own windows create a Dock icon to allow access to those windows. Unfortunately, due to JVM sharing, several applets from different sites may share the same icon, and applets that do have their own Dock icon do not create distinct ones.

Resolution:

This issue has been resolved. Applets are now only coalesced in the same JVM if they originated from the same site. The Dock icon now shows the name of the originating site.

Radar #7765447

Applets need to render using CoreAnimation in capable browsers, enable 3D technologies.

Description:

Currently, 3D technologies cannot use the out-of-process plug-in, because they attach their 3D surfaces to an invisible window that renders content offscreen. These technologies need a way to attach a CoreAnimation layer to the applet, which will be correctly layered with the applet and browser content.

Resolution:

This issue has been resolved. The Java applet plug-in now uses CoreAnimation-based rendering in capable browsers, and new API has been added to the JAWT interface to allow CoreAnimation layers to be attached to Java AWT components. See http://developer.apple.com/library/mac/#samplecode/JAWTExample for an example.

Radar #7777197

Applets run out of the browser's process are effectively rate limited to 20fps.

Description:

Due to inefficiencies of the initial drawing model of the out-of-process plug-in, the update rate was effectively capped at 20fps to avoid saturating the CPU.

Resolution:

This issue has been resolved. Updates are handled more efficiently in both the CoreAnimation and CoreGraphics rendering models, and the artificial cap has been removed.

Radar #7862193

Mouse wheel scrolling does not work in applets running outside of the browser process.

Description:

Applets run outside of the browser process do not receive mouse-wheel scroll events.

Resolution:

This issue has been resolved.

Radar #8143107

Can't connect to applets outside of the browser process via JavaScript.

Description:

The LiveConnect bridge in the out-of-process applet plug-in was not correctly connected during page load.

Resolution:

This issue has been resolved.

Radar #8267740

The windows of applets running outside of the browser process are visible in Exposé.

Description:

The off-screen window of applets running out-of-process were not marked with the appropriate tag bits to make them invisible to Exposé.

Resolution:

This issue has been resolved.

Radar #8639954

AWT text components are very slow to update in applets run outside of the browser process.

Description:

AWT components aren't updated reliably in the out-of-process applet plug-in. Text can be slow to show up when typed into text fields.

Resolution:

This issue has been resolved.

Radar #8685315

Disconnected applets eat 100% CPU after parent window closed.

Description:

Applets disconnected from their parent web page can start eating 100% of the CPU if their original browser page was closed.

Resolution:

This issue has been resolved.

Radar #8919577

Java applet plug-in fails to render in applets using the applet tag in WebKit 534.11 and lower.

Description:

WebKit 534.11 and lower do not render content in the applet tag when using the CoreAnimation rendering model.

Resolution:

This issue has been resolved. The out-of-process applet plug-in uses the CoreGraphics rendering model for WebKit versions 534.11 and lower. Otherwise, the plug-in uses the CoreAnimation rendering model when available.

Java Proxy

Radar #7062883

Applications connecting to NTLM resources through a proxy using J2SE 5.0 failed to connect.

Description:

The NTLM implementation in J2SE 5.0 failed to perform authentication correctly.

Resolution:

This issue has been resolved.

Java ScreenMenuBar

Radar #8842834

JRadioButtonMenuItem deselects when re-selected.

Description:

When using the screen menu bar, JRadioButtonMenuItems would not follow their corresponding radio button model, and instead simply toggle their selection when chosen.

Resolution:

This issue has been resolved.

Java Security

Radar #8413105

Certain forms of cryptography fail to initialize in applets and Web Start.

Description:

Creating a SecretKeySpec or other cryptography classes can fail to initialize if created from an unsigned Java applet or Web Start application.

Resolution:

This issue has been resolved.

Radar #9049685

Certain JavaFX demos present more "Install Extension" dialogs.

Description:

Due to changes in the secure classloader evaluation mechanism, each resource jar and JNLP URL are now being evaluated as discrete elements. This causes the "Install Extension" installer UI to be presented for each resource.

Workaround:

Click-through the "Install Extension" UI. Once added, each resource at that particular URL and signed with that specific certificate will be permanently trusted.

Java Tools

Radar #8989281

Maven, Ant, and Derby do not use the default version of Java in Java Preferences.

Description:

The Java tools in /usr/share/java do not always use the top version of Java listed in the Java Preferences JVM selection panel.

Resolution:

This issue has been resolved.