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 Accessibility

Radar #7248013

VoiceOver does not speak characters as they are typed in JTextComponents.

Description:

The Java accessibility system was not sending the appropriate notifications to the native OS X accessibility system when text changes were made to Swing JTextComponents.

Resolution:

This issue has been resolved.

Radar #7498168

Transferring focus between JTextComponents throws an InvocationTargetException when VoiceOver is running.

Description:

In some circumstances, JTextComponent accessibility could throw an InvocationTargetException.

Resolution:

This issue has been resolved.

Radar #7498175

Java accessibility fails to report required attributes to native AX system.

Description:

Running the Accessibility Verifier application against a Java application would frequently report missing AXDescription and AXTitleUIElement information.

Resolution:

This issue has been resolved.

Radar #7498226

JProgressBar progress notification not sent to VoiceOver.

Description:

Changes to JProgressBars are not conveyed to the native AX system, and in turn are not heard in VoiceOver.

Resolution:

This issue has been resolved.

Java Applets

Radar #6774655

Applet lifecycle errors could crash browser.

Description:

Internal applet lifecycle inconsistencies could result in Objective-C exceptions bring thrown into the browser, usually resulting in a crash.

Resolution:

The exception throwing issue has been resolved. Remaining applet lifecycle issues will be logged, and should be reported as separate bugs.

Radar #7387825

Loading non-existent applet can hang browser.

Description:

Loading an applet that does not actually exist can hang the browser in a deadlock from the greybox painter.

Resolution:

This issue has been resolved.

Radar #7466414

Loading signed code authorization dialog can fail loading native library.

Description:

A race condition in the underlying authorization dialog initialization could cause the dialog to fail to initialize and display. Refreshing the page causes the dialog to be shown correctly.

Resolution:

This issue has been resolved.

Radar #7678257

The J2SE 5.0 in-process plug-in is no longer used for Safari.

Description:

The in-process plug-in for J2SE 5.0 on OS X v10.5 is no longer maintained, and is no longer used in Safari by default. The Java SE 6-based plugin in the Deploy.bundle is used instead, even though it is hosted on the J2SE 5.0 JVM. The 1.5 plugin is now only present for backwards compatibility with browsers that use the Java Embedding Plugin (Firefox, Camino, etc).

Radar #7769782

Invalid parameters in Java Preferences causes browser crash.

Description:

If the Applet Runtime Parameters in Java Preferences cause the JVM to fail to initialize, it would cause the hosting browser process to crash when loading an applet.

Resolution:

This issue has been resolved. When the JVM fails to initialize, a coffee cup with a red exclamation point will display instead of the applet content.

Java Application Support

Radar #7673722

/usr/libexec/java_home is difficult to use from launchd plists without an additional shell script.

Description:

/usr/libexec/java_home is designed to provide a replacement for full hardcoded paths to a $JAVA_HOME, however it's not possible to use the returned value without executing a shell.

Resolution:

An --exec argument was added to /usr/libexec/java_home. This argument takes a single "command" argument and passes any remaining arguments to an invocation of $JAVA_HOME/bin/<command> <args...>.

Radar #7820158

/usr/libexec/java_home doesn't show an installed JVM's name in --verbose mode.

Description:

/usr/libexec/java_home --verbose prints only the version, architecture, and path. Without the CFBundleIdentifier of the JVM, it's difficult to discriminate between multiple JVMs of the same version.

Resolution:

/usr/libexec/java_home --verbose now prints the installed JVM's bundle name.

Java Aqua LAF

Radar #7380963

JComboBox commits highlighted item if mouse-up is outside of pop-up bounds.

Description:

The selected item in a popup menu of a JComboBox would incorrectly commit under the following circumstances: mouse-down and up on a JComboBox, mouse-down over a menu item, drag out of the popup, and mouse-up outside of the popup.

Resolution:

This issue has been resolved.

Radar #7404118

JToolBar+JToggleButton: text disappears when selected.

Description:

JToggleButtons placed in JToolBars fail to paint their label text when selected.

Resolution:

This issue has been resolved.

Radar #7584031

Aqua JDesktopPane holds last frame, prevents garbage collection.

Description:

The Aqua JDesktopPane implementation holds onto the last shown JInternalFrame after it has been removed from the pane, which prevents the frame from being garbage collected.

Resolution:

This issue has been resolved.

Radar #7592927

JSpinner: missing keybindings.

Description:

Several keybindings (enter, up/down arrow) are incorrectly configured for JSpinners and JFormattedTextFields.

Resolution:

This issue has been resolved.

Java AWT

Radar #7017519

Applet AWT controls do not receive focus/keystrokes on window activation.

Description:

AWT controls in applets sometimes do not receive focus when the browser window becomes active/inactive. This can prevent key strokes from being delivered, even though the component looks like it's focused.

Resolution:

This issue has been resolved.

Radar #7067726

AWT TextFields and TextAreas do not accept complex text input.

Description:

On OS X v10.6, AWT TextFields and TextAreas fail to receive multi-keystroke input method events.

Resolution:

This issue has been resolved.

Radar #7270562

Changing a window to non-resizable does not remove resize indicator.

Description:

In some circumstances, changing a window from resizable to non-resizable would not remove the resize indicator from the window.

Resolution:

This issue has been addressed.

Radar #7463749

Document modal sheets fail to modally block their parent window.

Description:

Document modal sheets fail to block key focus from being transferred into their parent window. While clicks are blocked, keyboard navigation is still possible in the parent window.

Resolution:

This issue has been resolved.

Radar #7551587

Dialogs marked DOCUMENT_MODAL fail to activate app.

Description:

Dialogs marked as DOCUMENT_MODAL against their parent cause a failure to activate their application when clicked on.

Resolution:

This issue has been resolved.

Radar #7593682

Cursor coordinates not translated when User Interface Scale Factor is greater than 1.0

Description:

The AWT MouseInfo failed to properly translate the cursor's coordinates into the Java 72-point coordinate space when the system is running in HiDPI (User Interface Scale Factor in Quartz Debug set greater than 1.0). This could cause Java Preferences fail to launch, depending on the mouse location.

Resolution:

This issue has been resolved.

Radar #7722807

Applet signed code authorization dialog makes "About" menu disappear from browsers.

Description:

Signed applets that trigger the signed code authorization dialog had the side effect of replacing the browser's NSApplication delegate, which would result in them losing their "About" menus (among other issues).

Resolution:

This issue has been resolved.

Radar #7733306

Navigating an AWT FileDialog into a network server automatically mounts all available shares.

Description:

On OS X v10.6 only, navigating an AWT FileDialog into a network server would mount all available shares on the server, without user intervention.

Resolution:

This issue has been resolved.

Java Core Frameworks

Radar #7754383

Threads attached via JNFObtainEnv() are always attached as non-daemon.

Description:

If a native thread is attached to the JVM with JNFObtainEnv, there is no way to specify if it should be attached as a normal thread or as a daemon.

Resolution:

A JNFThreadAttachAsDaemon flag has been added that can be OR'd into the JNFThreadContext passed to JNFObtainEnv().

Java Deploy

Radar #7383077

Signed code access authorization dialog has small visible parent window.

Description:

The signed code access authorization dialog which requests signed code to run with escalated privileges shows a small parent window which is supposed to be invisible.

Resolution:

This issue has been resolved.

Radar #7390578

Installing Java software updates requires a reboot, or risks crashing applications linked against WebKit.

Description:

Changing the underlying JavaVM.framework and installed JVM bundles causes a version mismatch between the in-memory frameworks and the versions on disk. Symbol mismatches usually resulted in the application crashing when it started to load additional Java resources.

Workaround:

Quit any web browsers and Java applications before installing the Java software update, or restart them afterwards.

Resolution:

This issue has been partially resolved through weak-linking against new symbols in the JavaVM.framework. Java software updates no longer require a reboot or logout, but Java will not be functional in some applications until they are restarted.

Radar #7578937

Broken $JAVA_HOME/lib/plugin.jar symlink.

Description:

The symlink at $JAVA_HOME/lib/plugin.jar was pointing to a non-existent plugin2.jar file in the Deploy.bundle.

Resolution:

This issue has been resolved.

Java EAWT

Radar #5851561

Native gesture events are not sent to Java.

Description:

Native gesture events were suppressed at the native window layer.

Resolution:

Gesture events are now routed through the EAWT event system. Applications can observe gestures by adding a GestureListener to any javax.swing.JComponent using the com.apple.eawt.event.GestureHelper class. See the JavaDoc in appledocs.jar for more information about the com.apple.eawt.event API.

Radar #7484445

Deadlock dispatching OpenFile EAWT event while launching.

Description:

There exists a rare deadlock that can occur while launching a bundled Java application by opening an associated document. The deadlock can occur between the application startup logic and the OpenFile event dispatching initializing the EAWT classes. The effect of this deadlock is an app that hangs at launch.

Resolution:

This issue has been resolved.

Java Graphics

Radar #5430543

Sun2D renderer crash in applets and clipped embedded views.

Description:

A commonly auto-reported crash in the Sun2D rendering loops could occur when scrolling embedded views (like applets in a web browser).

Resolution:

This issue has been resolved.

Radar #7504705

AlphaComposite: Crash rendering with bad opacity.

Description:

It is possible to crash the Sun2D graphics loops by creating an AlphaComposite with a bad opacity value.

Resolution:

This issue has been resolved.

Java HotSpot

Radar #7423544

JVMstat API broken if username contains an underscore.

Description:

The JVMstat API and all tools that use it (jps, jconsole, jvisualvm, etc) fail to launch if the current user's shortname contains an underscore character.

Resolution:

This issue has been resolved.

Radar #7666953

Debugging tools crash if reverse DNS of localhost does not resolve.

Description:

Java debugging tools like jdb can crash when connecting to a host that does not resolve. This can happen when the reverse DNS lookup of a host returns a name, but the forward DNS lookup of that name does not resolve.

Resolution:

This issue has been resolved.

Java JavaLib

Radar #7007567

IllegalStateException: recursive invocation when specifying custom system classloader.

Description:

When specifying a custom java.sytem.class.loader, the JVM would throw an IllegalStateException, which was suppressed and logged.

Resolution:

This issue has been resolved.

Radar #7308370

No way to run Java jobs via libdispatch.

Description:

There has been no way to perform Java Runnables or Callables on serial or concurrent dispatch queues.

Resolution:

Executors for serial and concurrent dispatch queues can be obtained from com.apple.concurrent.Dispatch.

Radar #7378413

JVM fails to open java.io.Files with unicode surrogate pair characters.

Description:

The JVM fails to detect the existence of or open java.io.Files with unicode surrogate pairs in the file name.

Resolution:

This issue has been resolved.

Radar #7772460

14compatibility.jar causes more problems than it solves.

Description:

The 14compatibility.jar is dynamically added to the end of the user classpath when accessing certain XML parsing classes to maintain backwards compatibility with poorly written apps. This approach is no longer generally required.

Resolution:

This issue has been resolved by generally removing the 14compatibility.jar classpath machinery from Java SE 6. Now, known double-clickable applications that require it will have it applied based on their CFBundleIdentifer.

Radar #7840189

No way to run Java jobs on the main CFRunLoop.

Description:

There has been no way to perform Java Runnables or Callables on the main thread.

Resolution:

A blocking and non-blocking Executor for the main thread can be obtained from com.apple.concurrent.Dispatch.

Java Plugin2

Radar #6934469

Applet access authorization dialogs don't come to foreground.

Description:

Applet access authorization dialogs in the out-of-process applet plugin failed to come to the foreground.

Resolution:

This issue has been resolved.

Radar #7308368

Plugin2 uses an overlay window and does not interleave with browser content.

Description:

The out-of-process Plugin2 has used an overlay window to render Java content, and cannot interleave that content with the browser window.

Resolution:

This issue has been resolved by rendering in the browser with the CoreGraphics NPAPI rendering mode. This has the side effect of disabling Java3D, JOGL, and other rendering technologies which rely on obtaining a pointer to the window, and placing their own content on top of it.

Radar #7308408

JOGL and Java3D does not work in Plugin2.

Description:

The out-of-process Plugin2 uses the CoreGraphics NPAPI rendering model to draw cooperatively with the web browser, so existing hardware accelerated technologies can not longer draw by attaching a 3D surface to the underlying Java window.

Workaround:

Use the in-process applet plug-in (Plugin1)

Radar #7631616

Windows opened by out-of-process applets can get lost.

Description:

Since windows opened by applets in Plugin2 are not in the browser process, they can get pushed to the background, and have no way to bring them forward (Window menu, app Dock icon window list, etc).

Resolution:

If an applet opens a window, it triggers the Java applet process to create a Dock icon.

Radar #7938512

Loading an applet hangs when $TMPDIR contains "-D"

Description:

When the out-of-process applet plugin is selected in Java Preferences, loading an applet could hang if your $TMPDIR happens to contain the string "-D"

Workaround:

Log in as a different user, or switch to in-process plugin.

Java ScreenMenuBar

Radar #7186837

Disposing a non-parented non-modal JDialog clears the menu bar.

Description:

When a non-modal JDialog with no parent closes, it cleared out the menu bar, instead of installing the menus from the next active window.

Resolution:

This issue has been resolved.

Radar #7420583

JMenuItems setVisible(false) do not hide.

Description:

The screen menu bar would not hide JMenuItems that were marked setVisible(false).

Resolution:

This issue has been resolved.

Java Security

Radar #7446856

The default password for the Java cacerts keystore file changed.

Description:

The default password for the cacerts file changed from "changeit" to "changeme" in a previous release. This could cause a "java.io.IOException: Keystore was tampered with, or password was incorrect" error for some operations that directly access or change the cacerts keystore.

Resolution:

The cacerts keystore password has been reverted to the Oracle default "changeit".

Radar #7497116

Java PKCS11 config file points to incorrect shared library.

Description:

The Java SmartCardServices failed to load because the PCKS11 config file was pointing to the wrong native shared library.

Resolution:

This issue has been resolved.

Radar #7727853

HmacCore digester not thread safe.

Description:

The native OS X HMAC cryptographic hasher did not have the appropriate thread-safety checks and could crash under concurrent usage.

Resolution:

This issue has been resolved.

Java Sound

Radar #7257512

Distortion while recording from mono USB microphones.

Description:

There is an error in the Java recording buffer handling from mono microphone sources which results in static and pops.

Resolution:

This issue has been resolved.

Radar #7506878

MIDI device handling crashes with empty manufacturer name.

Description:

The Java MIDI device manager crashes when releasing a device with an empty manufacturer name.

Resolution:

This issue has been resolved.

Radar #7517596

Java hangs while closing a MIDI device.

Description:

The Java MIDI device manager hangs indefinitely when closing a device.

Resolution:

This issue has been resolved.

Java Toolkit

Radar #7471135

The AppleJavaExtensions.jar is out of date.

Description:

The AppleJavaExtensions.jar from http://developer.apple.com/library/mac/samplecode/AppleJavaExtensions is not always update-to-date with the current EAWT and EIO implementations in the latest Java software updates.

Resolution:

A copy of the extensions jar is present in /usr/share/java/Stubs/AppleJavaExtensions.jar.

Radar #7488143

JavaDoc for EAWT and EIO does not contain @since tags.

Description:

The JavaDoc for the EAWT and EIO extensions does not contain the @since tags necessary to determine when which API was added in which release.

Resolution:

This issue has been resolved. All previous and current additions to the com.apple.* extensions contain @since information.

Java VM Tools

Radar #6949007

Java VisualVM is slow to attach to a Java process on OS X.

Description:

Java VisualVM is slower to attach to a Java process on OS X than on other platforms.

Resolution:

This issue has been resolved.

Radar #7771256

OpenFileDescriptorCount attribute of OperatingSystem MBean is always zero.

Description:

The OpenFileDescriptorCount of the java.lang/OperatingSystem MBean (observable through jconsole) was unimplemented, and always returned 0.

Resolution:

This issue has been resolved. The OpenFileDescriptorCount now returns number of the Java process' own entries in /dev/fd.

Radar #7817511

"VisualVM" is now named "Java VisualVM"

Description:

To more accurately reflect product name and purpose of the VisualVM tool, it has been renamed "Java VisualVM" in the /usr/share/java/Tools directory.

Resolution:

This issue has been resolved. The command-line tool remains "jvisualvm".

Java Web Start

Radar #7404451

"apple.awt.brushMetalLook" property ignored in Java Web Start.

Description:

The "apple.awt.brushMetalLook" system property defined in an application's JNLP file is ignored by the Java Web Start launcher.

Resolution:

This issue has been resolved.

Radar #7833746

Java Web Start permission dialog has small visible parent window.

Description:

The Java Web Start dialog which requests permissions for opening a file, clipboard access, or printing displayed a small parent window, which is supposed to be invisible.

Resolution:

This issue has been resolved.

Java Installer

Radar #7449332

Java for OS X v10.6 installer does not disable unsupported JVMs.

Description:

When confronted with unexpected unsupported JVMs in the /System/Library/Frameworks/JavaVM.framework/Versions directory, the default OS X installer moves aside the directories and appends " 1" to their name. This behavior further confuses older JVMs which assume they are run from a hardcoded path.

Resolution:

This issue has been resolved by moving aside unsupported JVMs into a disabled directory. If you require an older version of Java to make an application run correctly, please contact the application developer to ask them to upgrade to support the current version of Java SE 6, and file a bug with at http://bugreporter.apple.com with specific details about the compatibility issues that require use of the older version.