Known and Resolved Issues

This chapter lists high visibility bugs that have been addressed in this release. 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.

Activity Monitor

Radar #5782402

Java applications show up as (null) in Activity Monitor

Description:

Bundled java applications running in a 64-bit JVM show up as "(null)" in Activity Monitor.

Workaround:

Use the command line "ps" utility to see the full name of the application.

Java Application Support

Radar #4561714

Bundled applications cannot display a Java 6 splash screen

Description:

New in Java 6 is the ability to display a splash screen when your application starts. From the command line, this is done with the '-splash:<path>' argument. No such equivalent existed for bundled applications.

Resolution:

Fixed. Bundled applications can now display a splash file by adding the key 'SplashFile' with the path to the image file as the corresponding value to your bundled application's Java dictionary. This feature only applies to applications running in Java 6.

Radar #5150621

Can't select Java SE 6 in Java Preferences.app

Description:

Java SE 6 is not visible in the Java Application Runtime Settings list in Java Preferences.app.

Resolution:

Fixed. Java 6 can now be selected as your primary Java VM for use on the command line and for Java applications and Web Start applications that request "1.4+" or "1.5+" as their VM version.

Radar #5422774

Running Java applications in 64-bit mode.

Description:

Java 1.5 on OS X v10.5 will run in 64-bit mode, but the command line 'java' will use the 32-bit Java VM by default.

Resolution:

To specify the architecture you want, use '-d32' or '-d64' to indicate which Intel architecture you want to use. If the specified architecture is not supported the default architecture will still be used.

Java 6 handles both -d32/-d64 on the command line, but always runs in 64-bit mode. J2SE 1.4 does not handle - d32/-d64 on the command line (identifies them as unrecognized options that cause the JVM not to be started).

Radar #5753008

Prioritizing the J2SE 5.0 (64-bit) JVM actually selects the 32-bit J2SE 5.0 JVM.

Description:

The 32-bit J2SE 5.0 JVM is actually selected and used by some Java and Web Start applications when J2SE 5.0 (64-bit) has the highest priority in Java Preferences' Java Application Runtime Settings.

Radar #5787297

Preferred Java VMs are reset after installing Java for OS X v10.5 Update 1.

Description:

The preferred order of Java VMs for launching Java applications is reset after installing Java for OS X v10.5 Update 1. This information is now also stored in ~/Library/Preferences.

Workaround:

Open /Applications/Utilities/Java/Java Preferences.app, change the preferred VM's, and click "Save".

Java Aqua LAF

Radar #4777837

JTabbedPanes throw ArrayIndexOutOfBoundsException when calling removeAll()

Description:

JTabbedPanes with enough tabs to scroll between them could sometimes throw an ArrayIndexOutOfBoundsException originating from the Aqua Look and Feel if remove() or removeAll() was called on the component.

Resolution:

This issue has been addressed.

Radar #5445548

JOptionPane dialogs in Web Start Applications use the generic Java application icon if not launched from a bundled application.

Description:

JOptionPanes use the icon of the application to show which application the modal dialog belongs to. Java Web Start applications launched directly from a JNLP file would not show their icon as specified in the JNLP until they were saved as a bundled application, and relaunched.

Resolution:

JOptionPanes now obtain the application icon directly from the Dock tile of the application.

Radar #5599191

"JComboBox.isPopDown" and "JComboBox.isSquare" don't repaint the component when changed.

Description:

The extended JComboBox client properties described in Technical Note 2196 did not update the visual appearance of the JComboBox until some external event triggered a repaint.

Resolution:

Changing the JComboBox client properties now requests a repaint() and updates the JComboBox immediately.

Radar #5600749

Client properties ignored if set too early

Description:

If client properties were set while a non-Aqua look and feel was active, they were ignored when switching to the Aqua Look and Feel.

Resolution:

Fixed. Client properties are now correctly processed when the Aqua Look and Feel is installed.

Radar #5601325

Up/Down arrow keys should jump to the beginning or end of line

Description:

Multiline JTextComponents don't move the insertion caret to the beginning of the first line when the up-key is pressed and the insertion point is already in the middle of the first line of text. Same problem with down-key pressed and the last line.

Resolution:

The insertion caret now jumps to the beginning or end of line using the up/down arrow keys, as per the standard multi-line text field behavior in OS X.

Radar #5618485

The client property to specify a descending sort order for a JTable column is misspelled.

Description:

The descending value for the "JTableHeader.sortDirection" client property key was mistakenly misspelled "decending".

Resolution:

Accepted values of "JTableHeader.sortDirection" are now { "ascending", "decending", "descending", null }.

Radar #5683832

No way to obtain a title-less OS X style group border

Description:

OS X style titled borders can be obtained using UIManager.getBorder("TitledBorder.aquaVariant"), however there was no way to obtain an OS X style title-less border.

Resolution:

Title-less OS X style group borders can now be obtained with UIManager.getBorder("InsetBorder.aquaVariant").

Radar #5686535

There is no way to access the color of the focus ring from Java

Description:

While the light and dark selection colors are available from the UIManager, there is no way to obtain the color of the focus ring from a Java application.

Resolution:

The focus ring color can now be obtained using UIManager.getColor("Focus.color").

Radar #5693868

The vertical alignment of icons positioned in square-style JButtons is 2 pixels too high

Description:

JButtons set to the square style, or resized vertically to become compressed into the square style did not adjust the vertical alignment of their icons to compensate, and was 2 pixels too high.

Resolution:

JButtons icons now are center aligned in all button styles.

Radar #5696011

Bevel-style JButtons could overflow their visual bounds

Description:

JButtons with non-center alignment could place their text and icon content on top of the visual border of the button.

Resolution:

All button styles (particularly bevel), now compensate for their visual margin when laying out their internal content. Edge-aligned content should now rest against the edge, and not paint on top of it.

Java AWT

Radar #5493967

GraphicsEnvironment.getScreenDevices() returns inaccurate information

Description:

The GraphicsDevice and GraphicsConfiguration returned inaccurate or incomplete information for available accelereated memory and physical screen size.

Resolution:

GraphicsDevice.getAvailableAcceleratedMemory() now returns the available texture memory on the specified display device's graphics card, if available. GraphicsConfiguration.getNormalizingTransform() now returns a non-identity transform that represents the scaling proportion between the real physical size of the attached display and the virtual coordinate space of the Java application.

Radar #5512101

Java applications launched from the command line show 'bin' as their name in the Dock.

Description:

Some Java command-line tools displayed 'bin' as the name of the application in the Dock.

Resolution:

Fixed. The Dock now shows the correct application name for Java applications and Java command-line tools.

Radar #5600385

Java application windows don't work with Spaces

Description:

Switching between spaces and using Command-Tab to return to a Java application, did not switch back to the Java application's space. Menus appeared, but no windows were visible.

Resolution:

Fixed. Java SE 6 windows now correctly interact with Spaces.

Radar #5664937

Copying and pasting images to and from Java fails

Description:

Copy and paste operations on image types from Java applications fail with a native exception logged to the console.

Resolution:

This issue has been resolved.

Radar #5674015

OS X does not have the concept of a "System Tray"

Description:

Java applications using the SystemTray API in Java SE 6 need a visual representation on OS X.

Resolution:

TrayIcons are represented on OS X using NSStatusMenus that are presented to the left of the standard system menu extras. The java.awt.Image artwork for a TrayIcon is presented in grayscale as per the OS X standard for menu extras. TrayIcon.displayMessage() presents a small non-modal dialog positioned under the TrayIcon. The ActionListener for the TrayIcon is only fired if the "OK" button on the non-modal dialog is pressed, and not if the window is closed using the window close button. Multiple calls to TrayIcon.displayMessage() will dismiss prior messages and leave only the last message. If the application is not in the foreground when TrayIcon.displayMessage() is called, the application bounces its icon in the Dock. Message windows are badged with the application's icon to identify the which application triggered the notification.

Radar #5686843

The system property awt.multiClickInterval returns null.

Description:

System.getProperty("awt.multiClickInterval") always returned null.

Resolution:

Java now returns an integer representing the number of milliseconds of the double-click delay time based on the user's setting for "Double-Click Speed" in the Keyboard & Mouse preference panel.

Radar #5754483

Command-line Java apps cannot run graphically without a Dock icon

Description:

Java applications started from a command line could not be started in UIElement mode.

Resolution:

Set the Java system property "apple.awt.UIElement" to "true" to start your command-line application in UIElement mode. This suppresses creation of a Dock icon and menu bar, and is only appropriate for modeless transient utility applications.

Radar #5762408

Swing JTextComponents do not interact with the OS X Services menu

Description:

It is not possible to perform operations from the Services menu on lightweight text components.

Resolution:

All Java-accessible text components that support the concept of selection now interact with the OS X Services menu under the application menu, including JTextComponents. Services can now request the current selection, and replace the current selection.

Java Classes

Radar #4743709

AppleScript should be available as a language to the javax.script API

Description:

AppleScript should be provided as a ScriptEngine to the javax.script API in Java SE 6.

Resolution:

AppleScript has been provided as an available language to the javax.script API. It supports passing basic Java objects and collections into AppleScript functions, and receiving Java objects as return values from AppleScript scripts. Currently supported types include strings, numbers, images, lists, sets, and maps/records. The AppleScriptEngine cannot be instantiated in applications that do not have privileges to perform Runtime.exec() operations.

Java HotSpot

Radar #4643752

Java process instrumentation tools don't work

Description:

Java process instrumentation tools like jinfo, jmap, and jstat, don't work without escalated privileges.

Workaround:

Use the associated tools with the 'sudo' command.

Java JavaLib

Radar #5569300

Thread.getContextClassLoader() returns null with -XstartOnFirstThread

Description:

Thread.getContextClassLoader() will return null if the application is run from Eclipse, or with -XstartOnFirstThread specified on the command line.

Resolution:

Thread.getContextClassLoader() now returns the correct class loader for the current thread whether the application was started with -XstartOnFirstThread or not.

Java JDK

Radar #5655357

Passing -client to the Java Virtual Machine does not enable the Client HotSpot compiler

Description:

The Client HotSpot VM compiler is not available for the 64-bit Java SE 6 for OS X.

Java Networking

Radar #4623491

No IPv6 addresses returned for the local machine

Description:

Calling InetAddress.getAllByName() with the local machine hostname as the argument would return only IPv4 addresses. It would not return any IPv6 addresses bound to the host.

Resolution:

This problem has been addressed. The method now returns both IPv4 and IPv6 addresses.

Java Sound

Radar #5616768

javax.sound.sampled.spi.MixerProvider has incorrect information

Description:

The file javax.sound.sampled.spi.MixerProvider referred to audio providers not available on OS X.

Resolution:

Fixed. Non-functional providers are no longer offered.

Java Swing

Radar #4877367

In-window menu bars do not show OS X menu shortcut symbols

Description:

JMenus inside of JFrames show menu shortcuts as "Meta" and "Alt" instead of using the "Command" or "Option" symbol.

Resolution:

KeyEvent.getKeyModifiersText() and KeyEvent.getKeyText() now return the unicode symbols as presented in the screen menu bar on OS X (Command, Option, Control, Shift, Numeric Keypad, etc).

Java Text

Radar #5599927

Text rendered using the Quartz pipeline (including printing) is distorted

Description:

Text rendered using the Quartz graphics pipeline (including all printing) did not apply the font face or metrics appropriately for scaled graphics contexts, resulting in irregularly spaced and untransformed characters.

Resolution:

This issue has been resolved.

Java Toolkit

Radar #5420927

There is no way to set a custom Dock icon or menu from Java.

Description:

There has been no way to set a custom Dock icon, set a Dock icon badge, or add a custom popup menu to a Java application's Dock icon.

Resolution:

New API has been added to the com.apple.eawt.Application object to support setting and getting the Dock icon image, setting a custom red badge on the icon (like Mail's unread count), and setting and getting a custom popup menu that is prepended to the standard Dock menu items.

Radar #5680303

Can't reference a Java application's bundle from Java.

Description:

Currently, Java applications need native code to get the path to their application bundle.

Resolution:

com.apple.eio.FileManager.getPathToApplicationBundle() now returns the full path to the application. This is the equivalent of calling "[[NSBundle mainBundle] bundlePath]" from Objective-C.

Java Web Start

Radar #3834108

Web Start applications don't display splash screens

Description:

Web Start ignored the request for a splash screen when an icon kind of 'splash' was specified in the JNLP file.

Resolution:

Fixed. Web Start now displays any requested splash screen for any version of Java.

Shark

Radar #4989222

Can't profile Java SE 6 applications with Shark

Description:

Java SE 6 applications cannot be profiled with Shark. This is because libShark.jnilib is 32-bit only.

Workaround:

None available at this time.