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 #3941214

Changes to JSliders are not spoken by VoiceOver.

Description:

Changes made to JSlider values are not propagated to the native accessibility system, and are not read by VoiceOver.

Resolution:

This issue has been resolved.

Radar #7498065

JEditorPanes do not interact with VoiceOver like native NSTextViews.

Description:

Arrow key behavior and several line editing commands do not trigger the same notifications to the native accessibility system and VoiceOver that native Cocoa text editors do.

Resolution:

This issue has been resolved.

Radar #8002471

Subclasses of Window returning bad AX values can cause accessibility to crash.

Description:

Subclassing a Window and returning null values for several accessibility properties can cause the native accessibility system in the Java process to crash.

Resolution:

This issue has been resolved.

Radar #8408792

Hidden components are not invisible to VoiceOver.

Description:

Java layouts that contain hidden items are still relayed to the native accessibility system and are read by VoiceOver, even though they are nowhere on screen.

Resolution:

This issue has been resolved.

Radar #8414664

JLabels are read twice by VoiceOver.

Description:

JLabels provide both a title and a text role to the native accessibility system and are read twice by VoiceOver.

Resolution:

This issue has been resolved.

Java Application Support

Radar #8059824

The $USER_HOME variable is not expanded in all fields of a bundled Java app's Info.plist.

Description:

The $JAVAROOT, $APP_PACKAGE, and $USER_HOME variables are not always expanded in each of the Java dictionary elements: Arguments, Properties, VMOptions, and WorkingDirectory.

Resolution:

This issue has been resolved.

Java Aqua LAF

Radar #7961076

Segmented button types don't apply if JButton.segmentPosition is set before JButton.buttonType.

Description:

If the client properties for the segmented button styles are applied out of order, the button will not render in the expected style.

Resolution:

This issue has been resolved.

Radar #8013559

Pressing the delete key in JFormattedTextFields causes two characters to be deleted.

Description:

JFormattedTextFields deleted two characters each time the delete key was pressed in the last release.

Resolution:

This issue has been resolved.

Radar #8166171

JTables, JLists, and JTrees use saturated highlight color, even when in background.

Description:

JTables, JLists, and JTrees use a saturated variant of the selection color in the Appearance preference pane in System Preferences. This color should not be used when the window is in the background.

Resolution:

This issue has been partially resolved. JTables and JLists now use the correct inactive grey color when the parent window is in the background, however JTrees still use the fully saturated color.

Java AWT

Radar #5751700

Using an AWT print dialog could prevent natural application shutdown.

Description:

An application that displays an AWT print dialog with no parent window may not exit naturally when its last window has been disposed. An internal parent frame was not disposed properly.

Resolution:

This issue has been resolved.

Radar #7175180

There is no way to mark a window to hide when its application deactivates.

Description:

Currently, windows marked with the “small" style, and setAlwaysOnTop(true) deactivate automatically when their parent application goes into the background. There is no way to specify this behavior for normal windows.

Resolution:

This issue has been resolved. Setting the Window.hidesOnDeactivate client property of the window's root pane to Boolean.TRUE will make the window hide when its parent application deactivates.

Radar #7183326

In J2SE 5.0, there is no way to define a window's minimum size.

Description:

Setting a Window minimum size is not a defined behavior of the J2SE 5.0 specification; it is in Java SE 6.

Resolution:

This issue has been resolved. Set the Window.minimumSize client property on the root pane of a window to a new Dimension object. The existing behavior of Window.setMinimumSize() remains unchanged in J2SE 5.0.

Radar #7551587

Dialogs marked DOCUMENT_MODAL fail to activate application.

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 #7993710

AWT file dialogs sometimes do not return file names with extensions on OS X v10.6.

Description:

AWT file dialogs sometimes do not return a file name with an extension to user code, depending on the system policy for showing file extensions. This problem only affects OS X v10.6.

Resolution:

This issue has been resolved.

Radar #8017481

apple.awt.CToolkit.postEvent() occasionally throws a NullPointerException.

Description:

Occasionally, an internal logic error in the AWT would cause NullPointerExceptions to be emitted from the CToolkit class.

Resolution:

This issue has been resolved.

Radar #8036170

Document-modal sheets sometimes show up behind their parent window

Description:

Due to window ordering/layering issues with a sheet's growbox, sometimes a sheet would roll down behind its parent window.

Resolution:

This issue has been resolved.

Radar #8065637

Showing an AWT file dialog and another modal dialog concurrently can cause a ClassCastException.

Description:

A ClassCastException is thrown by showing a modal dialog while an AWT file dialog is already present.

Resolution:

This issue has been resolved.

Radar #8102825

Frames are created behind document modal dialogs.

Description:

In some situations, new JFrames are ordered behind existing document modal dialogs.

Resolution:

This issue has been resolved.

Radar #8211234

Pressing Cmd-Ctrl-Space causes a native RuntimeException.

Description:

Due to missing data in the native event record for some keystrokes (including Cmd-Ctrl-Space), a native RuntimeException is thrown on the AWT event dispatch thread.

Resolution:

This issue has been resolved.

Radar #8221065

Mousing over a window changes the mouse cursor, even if popup menu is above the window.

Description:

In cases where an underlying Java window has different cursor regions, the cursor still changes while mousing over those regions, even if there is a popup in front of the window.

Resolution:

This issue has been resolved.

Radar #8321523

Java should not use device-dependent color correction.

Description:

Java uses the color correction profile of the primary display device to express its color rendering intent to the native graphics system. The colors used by the AWT are actually in the generic or sRGB colorspace, and should not be interpreted as already device-correct.

Workaround:

Change the color profile of the primary display to "Generic" in the Displays preference pane.

Resolution:

This issue has been resolved in Java SE 6. Sampled colors on screen using the Robot may no longer match the same literal RGB values used in the Java app. There are also performance penalties for translating images between different colorspaces.

Java Core Frameworks

Radar #7958643

JNFExceptions do not retain a JNI global ref to their jthrowables.

Description:

When a JNFException is thrown in Objective-C, the jthrowable cannot be moved between threads or stored in containers, because its underlying jthrowable was not held in a JNI global ref.

Resolution:

This issue has been resolved. The associated jthrowable is now held in a JNI global ref, and is destroyed when the the native JNFException is deallocated.

Radar #8452740

Java software updates do not update their framework BridgeSupport files.

Description:

Java software updates for OS X v10.5 and 10.6 have not been updating the BridgeSupport metadata for the native Java frameworks that have been updated.

Resolution:

This issue has been resolved. The BridgeSupport XML metadata files now reflect the API in the Java frameworks.

Java Deploy

Radar #8146434

Java Preferences needs a UI to show 3rd party JVMs added to the system.

Description:

The UI in Java Preferences does not show enough information to discriminate between multiple versions of the same JVM or between Apple and non-Apple JVMs.

Resolution:

This issue has been resolved. Java Preferences now shows all discovered JVMs with any advertised capabilities in a single list. This list shows the name, vendor, architecture, and full version of each JVM. It also coalesces multiple versions of the same major platform version from the same vendor into the same line.

Java Docs & Info

Radar #8264584

The /usr/libexec/java_home man page did not explain that it excludes disabled JVMs

Description:

The /usr/libexec/java_home man page did not contain text that described that it only returned JVMs that were enabled in the Java Preferences app.

Resolution:

This issue has been resolved.

Java EAWT

Radar #3198576

Quitting a Java app on OS X does not generate window closing events.

Description:

By default the eAWT calls System.exit(0) when asked to quit a Java application. Some cross-platform applications would like to gracefully handle Quit on OS X, without using the platform-specific eAWT API.

Resolution:

This issue has been resolved. Applications can now request that the eAWT send WindowClosing events to all open AWT windows instead of calling System.exit(0) when the user chooses Quit from the application menu. By setting the apple.eawt.quitStrategy system property to CLOSE_ALL_WINDOWS, the eAWT will send a close event to every window in back-to-front order.

Radar #4083709

Java apps have no way to determine the Spotlight query used to find files they are associated with.

Description:

Native Cocoa apps can use the search text used to find a file to highlight text, or jump to a sub-section of a document.

Resolution:

This issue has been resolved. Java apps can now register a com.apple.eawt.OpenFilesHandler which handles com.apple.eawt.AppEvent.OpenFilesEvents. Calling getSearchTerm() will return the search criteria used to find the file.

Radar #4623624

The eAWT ApplicationEvent quit handler is not logout-friendly.

Description:

The design of the legacy ApplicationEvent handler doesn't allow for the decision to proceed with quit or cancel quit to be postponed without creating a modal dialog. Most applications which require more complex UI to save changes would have to end up canceling a pending logout to show the correct UI.

Resolution:

This issue has been resolved. The legacy ApplicationEvent handler API has been deprecated. Applications can now register a com.apple.eawt.QuitHandler which uses a QuitResponse object to confirm or cancel the quit, but the handler may return, and the response object may be called back later from any thread. It is the app's responsibility to call cancelQuit() or performQuit() in a timely fashion.

Radar #4714211

Java apps have no way to listen for "open URL" events.

Description:

Native applications can register with LaunchServices to handle custom URL schemes.

Resolution:

This issue has been resolved. Bundled Java applications can now add the CFBundleURLTypes dictionary to their Info.plist, and register a com.apple.eawt.OpenURIHandler. The handler will be called with a com.apple.eawt.AppEvent.OpenURIEvent that contains the URI the application is being asked to open.

Radar #5445495

Java apps cannot discriminate between opening a group of files, or opening several files successively.

Description:

The design of the legacy ApplicationEvent handler only allowed an application to be notified of a single file open at one time. A group of files dropped on an application's icon would be serially dispatched into the same single-file handler. Apps looking to create groupings inside their app like playlists or photo albums had to implement a timer that would delay handling the file opening until the number of new files added appeared to quiesce.

Resolution:

This issue has been resolved. The legacy ApplicationEvent handler API has been deprecated. Applications can now register a com.apple.eawt.OpenFilesHandler which offers a list of files, grouped by the original user selection that initiaited the open file request.

Radar #5756768

Java apps cannot be suddenly terminated.

Description:

The eAWT does not expose a way for applications to opt-into being suddenly terminated, to speed log-out and shut down.

Resolution:

This issue has been resolved. Java applications on OS X v10.6 can now opt-in to being suddenly terminated. Apps can raise and lower their sudden termination count via the enableSuddenTermination() and disableSuddenTermination() methods on the com.apple.eawt.Application. For more information on Sudden Termination, see NSProcessInfo Class Reference.

Radar #8343136

Setting the PopupMenu for the Dock icon fails if it has no parent.

Description:

The com.apple.eawt.Application.setDockMenu(PopupMenu) method could fail if the provided PopupMenu did not already have a parent frame or MenuBar associated with it.

Resolution:

This issue has been resolved. A dummy MenuBar is constructed for the provided PopupMenu if it has no existing parent.

Java HotSpot

Radar #2830171

Avoid paging out GC'd pages.

Description:

When the system is under memory pressure, pages of Java heap with no live objects on them are still paged out to disk.

Resolution:

This issue has been resolved. HotSpot now marks uncommited pages with madvise() to signal that the pages are garbage and do not need to be paged out.

Java Install

Radar #8421130

JavaVM.framework headers (jni.h, etc) missing after installing update.

Description:

Due to restructuring of the frameworks and .jdk bundles in this update, the existing header symlinks do not point at valid locations, and code that uses them will fail to compile.

Workaround:

Install the Java Developer package for your system from http://connect.apple.com, which installs complete copies of the JavaVM.framework headers. The Java Developer package is now the authoritative source for all Java developer documentation, headers, and JDK source (it is a superset of the previous Java Documentation package).

Radar #8485138

Class sharing not available until reboot.

Description:

Due to internal restructuring of the JavaVM.framework, .jdk bundles, and the updateSharing daemon, class sharing archives are not generated until the next reboot. Class sharing is a performance optimization for the 32-bit client HotSpot.

Workaround:

Run launchctl load /System/Library/LaunchAgents/com.apple.java.updateSharing.plist or reboot.

Java JDK

Radar #3672275

Java Developer Previews should be uninstallable.

Description:

Java Developer Previews have always replaced the system JDK(s), with no way to roll back to the previous version.

Resolution:

This issue has been partially resolved. Java Developer Previews now install Java SE 6 .jdk bundles into /Library/Java/JavaVirtualMachines, which can be added or removed by the developer. The presence or non-presence of these JDKs do not impact the system JDK at /System/Library/Java/JavaVirtualMachines/1.6.0.jdk. Java Developer Previews for OS X v10.5 Leopard will continue to replace the system 1.5.0 JDK until the end of Leopard's service lifetime.

Java Plugin2

Radar #6934589

When using the out-of-process applet plugin, the JVM selection logic would always choose Java SE 6 (64-bit if available).

Description:

Plugin2 was hardwired to always pick the "best" JVM. The "best" JVM is actually the one the user chooses in Java Preferences that satisfies the applet’s minimum requirements.

Workaround:

Since J2SE 5.0 does not yet support Plugin2 as well as Java SE 6, dragging Java SE 6 to the top of the JVM list in Java Preferences will allow it to be used again for Plugin2.

Resolution:

This issue has been resolved.

Radar #7571031

When using the out-of-process applet plugin, right-clicks are not detected in Carbon-based browsers.

Description:

The Carbon event record does not contain the necessary information to determine which button invoked a click.

Resolution:

This issue has been resolved. The global hardware state is examined on clicks in Carbon browsers.

Radar #7631574

Detaching applet from webpage using option-drag conflicts with standard alt-modifier behavior.

Description:

When using the out-of-process applet plugin, attempting to initiate alt-modifier drags caused the applet to detach from the webpage.

Resolution:

This issue has been resolved. Holding down the command-key now causes a titlebar to show around the applet, which can be used to drag the applet out of the page. The showing/hiding titlebar does not conflict with standard meta-modifier clicks or drags within the content of the applet.

Radar #8253286

Mouse Click count in Java applets on Cocoa browsers were not reported correctly.

Description:

Java Plugin2 did not report the correct mouse click count on Cocoa based browsers.

Resolution:

This issue has been resolved.

Java Proxy

Radar #8043041

Proxy PAC file parsing doesn't work.

Description:

Network configurations that use non-trivial PAC files do not work in applets or Web Start applications.

Resolution:

This issue has been resolved. In Java SE 6, PAC files are now processed using the javax.script JavaScript engine, and are properly evaluated.

Java ScreenMenuBar

Radar #8312040

Certain mouse events were not being generated by the Screen menubar.

Description:

Mouse entered events were not being generated by menus when the Screen Menu bar was used.

Resolution:

This issue has been resolved.

Java Swing

Radar #8093871

JComboBox items don't select when clicked in some cases when using non-Aqua look and feels.

Description:

Due to a change in BasicComboPopup for Aqua, non-Aqua look and feels lost the ability to select items from JComboBox popups using multiple discrete clicks (down-drag-release works).

Resolution:

This issue has been resolved.

Java VM Tools

Radar #8284751

JDWP debugging can fail to connect on OS X v10.6.

Description:

Crash reports indicate that a significant number of JDWP debugging sessions fail to connect on OS X v10.6. When all JDWP transports fail to connect, the debugger process calls jni_FatalError, which aborts the virtual machine with the error AGENT_ERROR_TRANSPORT_INIT(197), and crashes.

Resolution:

This issue has been partially resolved. Upon failure of all transports to connect, a subsequent attempt is made to connect to localhost.

Java Web Start

Radar #7924184

Web Start applications launched from the command line displayed incorrect App name.

Description:

Web Start applications that were launched manually from the command line did not show the correct application name in their menus as well as the Dock.

Resolution:

This issue has been resolved.

Radar #8049225

Some Web Start applications would not launch in offline mode.

Description:

Web Start applications that depended on pre-installed jars did not launch when not connected to the network.

Resolution:

This issue has been resolved.

Radar #8379158

Web Start applications may launch in the wrong architecture.

Description:

Web Start applications that rely on the arch order being specified via the order of the resource elements did not launch in the correct architecture.

Resolution:

This issue has been resolved.

Radar #8504491

Web Start applications will show the install dialog twice.

Description:

Web Start applications that depend on signed Java extensions will show the install dialog twice if the extension has not already been installed.