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.

Java Applets

Radar #3819521

Java should have a way to run applets as their own process.

Description:

Java applets should be able to be run as their own processes, independent of the browser.

Resolution:

Java for OS X v10.5 Update 4 contains a prototype of the NPAPI-based Java Plugin2, which runs separately from the hosting browser process. It is present in /System/Library/Frameworks/JavaVM.framework/Resources/JavaPlugin2.plugin, and is a developer-only feature at this time.

Radar #6391767

JavaScript onload handler deadlocks with Java Applet security dialog.

Description:

On web pages containing a Java applet with signed content, any onload JavaScript handler that touched the Java LiveConnect support would logically deadlock with the modal security dialog.

Resolution:

LiveConnect calls sent to the applet while the security UI is present are dropped. A null instance of the applet is returned, because the applet is not actually alive yet.

Radar #6434637

Firefox does not use J2SE 1.4 when it is selected in Java Preferences.

Description:

The Firefox JavaEmbeddingPlugin read an internal property to determine which Java plug-in to load, and the property was removed.

Resolution:

This property has been replaced for older versions of the JEP, but will be removed in the future. Future versions of the JEP use the /usr/libexec/java_home command to determine which plug-in to load.

Java Application Support

Radar #5622562

Double-clickable Java applications have no way to express architecture requirements.

Description:

Java applications have no way to express to the JavaApplicationLauncher.framework their architecture requirements or preferred architecture. Checking the "Run in 32-bit mode" checkbox in the application's Finder Get Info window does nothing.

Resolution:

The JavaApplicationLauncher.framework no longer changes the architecture of a double-clickable application based on the JVM order in Java Preferences. Now, the architectures present in the JavaApplicationStub determine the architectures application can launch in. The order of the architectures in the LSArchitecturePriority key in the application's Info.plist now determine the preferred architecture to launch the application in. Additionally, the "Run in 32-bit mode" checkbox in the Finder Get Info window now functions as expected for Java applications. The JavaApplicationLauncher.framework now selects the first compatible JVM that can run in the architecture that application was launched in by Launch Services.

Radar #6474860

No way to choose JVM version from command line, no way to determine $JAVA_HOME.

Description:

OS X has no way to provide a valid $JAVA_HOME path that respects the order of JVMs in Java Preferences and handles version/architecture constraints.

Resolution:

/usr/libexec/java_home now prints a valid $JAVA_HOME path and takes several arguments to constrain its selection. See the java_home man page for more information.

Radar #6633526

JavaNativeFoundation's JNFObtainEnv() fails to set up a context classloader.

Description:

When JNFObtainEnv() attaches a thread to the JVM, it does not set up a context classloader for that thread.

Resolution:

A flag has been introduced that sets up the system classloader as the context classloader for the attaching thread.

Java Aqua LAF

Radar #5519010

Option-click on JTree handle does not expand all nodes.

Description:

Option-clicking on the node handle of a JTree does not expand all sub-nodes.

Resolution:

This issue has been addressed.

Radar #5699370

JDialogs don't pick up Web Start application icons.

Description:

Information, warning, and error JDialogs that show the application's icon were showing the generic Java icon for Web Start apps.

Resolution:

The dock icon is now appropriately picked up for all JDialogs.

Radar #5849613

JProgressBars consume CPU even if not visible.

Description:

Aqua JProgressBars did not correctly unregister and re-register internal animation timers when their parent component changed visibility.

Resolution:

This issue has been resolved.

Radar #6097244

JComboBox size application throws unexpected exceptions.

Description:

The internal component size applicator functions of the Aqua JComboBox UI delegate inadvertently triggered exceptions as part of its construction.

Resolution:

This issue has been resolved.

Radar #6109062

JButton border reset by Aqua after border explicitly set to null.

Description:

The Aqua Look and Feel reset borders on JButtons if the border was explicitly set to null.

Resolution:

This issue has been addressed.

Radar #6437501

Aqua JPasswordField does not show a caps-lock indicator.

Description:

The Aqua JPasswordField provides no feedback when the caps-lock key is on.

Resolution:

This issue has been addressed.

Radar #6444328

JTextField.setText() not thread-safe when using JTextField.variant=search.

Description:

Calling JTextField.setText() from multiple threads after applying JTextField.putClientProperty("JTextField.variant", "search") would result in other JComponents being modified off of the event dispatch thread.

Resolution:

This issue has been resolved.

Radar #6512564

Command-clicking on JLists and JTables resets selection.

Description:

Command-clicking on JLists and JTables would reset the selection instead of extending it when any slight motion occurred during the click.

Resolution:

This issue has been resolved.

Radar #6585910

JButtons had improper alignments for some extended types.

Description:

Java for OS X v10.5 Update 2 introduced some border and text baseline misalignment regressions to some of the JButton extended types.

Resolution:

This issue has been resolved.

Radar #6975000

Java SE 6 removed legacy Aqua classes.

Description:

Java SE 6 removed all legacy Aqua classes and replaced their implementations with stub classes. Applications depending on these classes will no longer function correctly. Direct use of Aqua internal classes will not be supported in future releases.

Java AWT

Radar #4090456

Windows disable when Help search field gains focus.

Description:

Java windows disable when the search field in the Help menu gains focus.

Resolution:

This issue has been addressed.

Radar #5509728

Toolkit.getDesktopProperty("awt.multiClickInterval") returns null.

Description:

The Toolkit.getDefaultToolkit().getDesktopProperty("awt.multiClickInterval") value was not implemented on OS X.

Resolution:

This value now returns the double-click interval specified in the Keyboard & Mouse preference pane.

Radar #5648142

Dropping or pasting image data into a Java application fails.

Description:

In certain circumstances, pasting image data into a Java application from the clipboard, or from a drag, could fail due to a native exception.

Resolution:

Pasting and dragging image data into Java applications now works correctly.

Radar #6276671

Toolkit.getScreenResolution() reports unexpected values, causes unusual scaling.

Description:

Toolkit.getScreenResolution() began reporting the physical screen resolution, which caused unusual scaling in some apps. Toolkit.getScreenResolution() now reports 72 dpi, or a multiplied value if the User Interface Scaling setting in Quartz Debug specifies a higher UI scale factor. The resolution of physical displays can still be obtained by obtaining the GraphicsConfiguration of the screen and evaluating the transform returned from GraphicsConfiguration.getNormalizingTransform().

Resolution:

This issue has been resolved.

Radar #6434346

Starting the AWT from native launchers fails to properly register application.

Description:

Instantiating the AWT from some Java native launchers (like some based off of the simpleJavaLauncher ADC example) which don't create a Cocoa or Carbon event loop failed after installing Java for OS X v10.5 Update 2. This would cause windows to show up, but never become foreground.

Resolution:

The AWT now recognizes when it is instantiated by a custom launcher and performs the proper application registration.

Radar #6472766

Menus using brackets as shortcuts show as curly braces.

Description:

Menu items using brackets as menu shortcuts would show as curly braces instead.

Resolution:

This issue has been resolved.

Java Deploy

Radar #6681082

Java signed content dialog asks users to trust certificates.

Description:

The security dialogs that ask to run signed Java content only ask the user to make a trust decision based on the certificate used to sign the content.

Resolution:

The security dialogs have been redesigned to ask questions based on originating host, using the certificates as corroborating information.

Radar #6962689

Web Start shortcut apps fail to launch on PPC and 32-bit only Intel Macs.

Description:

Double-clickable Java Web Start app shortcut bundles fail to launch on 32-bit only capable Macs.

Workaround:

Launch Web Start applications from their original JNLP files.

Java Engine

Radar #6224104

JVM eventually crashes after playing periodic sounds.

Description:

The Java VM will eventually crash when playing non-continuous sounds.

Resolution:

This issue has been resolved.

Java Graphics

Radar #5607632

Sun2D Image scaling is extremely slow with images obtained from ImageIO.

Description:

The native image type returned from ImageIO was not a type optimized for use by the Sun 2D renderer, and could result in extremely long pause times when using BILINEAR or BICUBIC scaling. Java SE 6 is not affected.

Resolution:

This issue is addressed in J2SE 5.0 by pre-converting the native image type returned from ImageIO when using the Sun2D renderer.

Radar #5719903

Poor graphics fidelity, performance in J2SE 5.0.

Description:

The Sun2D renderer in J2SE 5.0 has many unaddressable performance and fidelity issues, including poor aliased circle drawing, slow anti-aliased primitives, very slow image scaling, and occasional crashes.

Workaround:

The Sun2D software renderer is still available via -Dapple.awt.graphics.UseQuartz=false.

Resolution:

The default graphics renderer for J2SE 5.0 has been switched back to Quartz. In Java SE 6, the quality and the performance of the Sun2D renderer is significantly better, so the default renderer for Java SE 6 remains Sun2D.

Radar #6674516

GraphicsEnvironment doesn't update when screens are added or removed.

Description:

Java applications could encounter an ArrayIndexOutOfBoundsException when displays are added to or removed from the computer, and Java windows were moving between those screens.

Resolution:

This issue has been resolved.

Java HotSpot

Radar #6239308

Insufficient information in UnsatisfiedLinkErrors.

Description:

Applications with JNI libraries encounter a number of errors when transitioning to 64-bit, with most problems encountered by dyld wrapped up in an UnsatisfiedLinkError with little information.

Resolution:

The full text of the error from dyld is included in the description text of the UnsatisfiedLinkError, including the full paths to the binaries affected.

Radar #6425713

Java SE 6 does not enable GC ergonomics.

Description:

HotSpot in Java SE 6 did not enable the self-adjusting GC ergonomics as designed by Sun.

Resolution:

GC ergonomics has been enabled by default for Java SE 6, and will automatically use the Concurrent Mark Sweep collector on Macs with at least two cores and 2GB of RAM.

Radar #6431183

jstack would fail to print stack trace.

Description:

When jstack was run against a target process, sometimes it would fail to print the stacktraces of the target process and would instead throw a RuntimeException.

Resolution:

This issue has been resolved.

Radar #6565385

Java SE 6 HotSpot function compiler threshold reduced from 10000 to 1500.

Description:

The HotSpot function compiler threshold for Java SE 6 has been reduced to offer faster startup time for graphical applications. The previous value of 10000 is appropriate for server applications, however performance for graphical apps was shown to be improved by simply lowering this threshold to the default client value of 1500.

Workaround:

Pass -server to launch using the previous value.

Java InputMethods

Radar #4657992

Java Input Method Hotkey has been merged into Java Preferences.

Description:

The Java Input Method Hotkey selector application has been rolled into Java Preferences at the bottom of the "Advanced" tab.

Java Install

Radar #6257971

Installing Update 2 creates a /Developer directory with Jar Bundler.app and Applet Launcher.app symlinks.

Description:

The installer for "Java for OS X v10.5 Update 2" added two symlinks for Jar Bundler and Applet Launcher inside of /Developer/Applications/Utilities/. If /Developer did not exist, Update 2 created it.

Resolution:

The symlinks for Jar Bundler and Applet Launcher are removed from /Developer, and deletes /Developer if it is empty.

Radar #6951072

Installing Update 4 removes Jar Bundler.app and Applet Launcher.app symlinks from /Developer.

Description:

The installer for "Java for OS X v10.5 Update 4" removes the symlinks for Jar Bundler and Applet Launcher inside of /Developer/Applications/Utilities/.

Workaround:

Jar Bundler and Applet Launcher are still available in /usr/share/java/Tools.

Radar #6997161

Installing Update 4 concurrently with a rebooting update can lose JNLP file associations.

Description:

Installing "Java for OS X v10.5 Update 4" simultaneously with a software update that requires reboot can cause JNLP files to lose their association to the Java Web Start.app launcher.

Workaround:

Open the /System/Library/CoreServices window in the Finder, and then close it.

Java JavaLib

Radar #6153126

Missing sources in src.jar.

Description:

The source distribution for OS X was missing sources for the com.sun.javadoc, com.sun.jmx, com.sun.mirror, com.sun.org.apache, javax.management, and javax.sound classes.

Resolution:

This issue has been resolved.

Radar #6177885

Java applications started with -XstartOnFirstThread have no context classload on the main thread.

Description:

Java applications started with -XstartOnFirstThread do not have a thread context classloader defined for the main thread.

Resolution:

This issue has been resolved.

Radar #6978682

Java uses a new java.io.tmpdir.

Description:

Java uses a new, more secure temporary directory in OS X that is not shared between users. This directory has the form of /var/folders/1G/1G5zx3NCG58Url2t6oJtaE++-+2/-Tmp-/ and is accessible from the $TMPDIR environment variable. Some applications assume the temporary directory is always /tmp or do not expect dashes or plus signs in the path name.

Workaround:

Pass a different "java.io.tmpdir" system property to Java like "-Djava.io.tmpdir=/tmp", or use the value of the $TMPDIR environment variable.

Java JDK

Radar #5940722

Java applet settings have been removed from Java Preferences.

Description:

It is not possible to alter runtime parameters passed to Java applets.

Resolution:

Java applet settings have been re-introduced to Java Preferences, and are now scoped per-JVM, per-architecture.

Radar #7005322

Old JavaPluginCocoa.bundles cause Safari, Mail, and others to crash.

Description:

Older copies of the JavaPluginCocoa.bundle in a user home directory under ~/Library/Internet Plug-Ins/ can cause WebKit-based applications to crash on launch. There should only be one symlink of the JavaPluginCocoa.bundle in /Library/Internet Plug-Ins, which chooses the user's preferred Java version from Java Preferences.app.

Workaround:

Remove old copies of the JavaCocoaPlugin.bundle from the ~/Library/Internet Plug-Ins folder in any user home directories.

Java Networking

Radar #6118358

No way to specify proxy settings unique to Java.

Description:

There is no way for a user to specify proxy settings that are unique to Java.

Resolution:

UI has been added to the "Network" tab of Java Preferences.app.

Java ScreenMenuBar

Radar #5981387

JCheckBoxMenuItems ignores CTRL_MASK in menu key shortcut.

Description:

JCheckBoxMenuItems would ignore any CTRL_MASK assigned to them.

Resolution:

This issue has been resolved.

Radar #6034650

Using many menu items significantly slows down opening menus.

Description:

A previous fix to the Aqua screen menu bar caused the entire menu to be reconstructed each time the menu bar was opened.

Resolution:

Previous unmodified JMenus are now cached appropriately.

Radar #6440946

Menu item with VK_SPACE shortcut displayed as TAB.

Description:

A JMenuItem with a VK_SPACE shortcut would display its shortcut glyph as a tab character.

Resolution:

This issue has been resolved.

Java Security

Radar #5718921

Valid security certificates show "cannot be verified" warning.

Description:

In some cases, valid certificate chains would show a "certificate cannot be verified" warning, even though nothing was wrong with the certificate.

Resolution:

This issue has been resolved, and the security certificate UI has been redesigned.

Radar #6451514

Some signed content failed to validate with an IndexOutOfBoundsException.

Description:

Some signed applets or Web Start applications failed to validate due to an internal bookkeeping error in the MacOSXTrustDecider.

Resolution:

This issue has been resolved.

Java Text

Radar #6584192

Java SE 6 does not support the swing.aatext system property.

Description:

Support for the swing.aatext system property was removed in Java SE 6.

Resolution:

Java SE 6 on OS X now supports the swing.aatext system property for backwards compatibility. Using awt.font.desktophints is encouraged.

Java Tools

Radar #5820782

Ant missing some optional tasks.

Description:

The Ant distribution in Java was missing several tasks, including ANTLR.

Resolution:

This issue has been resolved.

Radar #5903940

Derby is not available in Java SE 6, as provided by Apple.

Description:

The Derby database libraries, which are shipped with the the Java 6 JDK on other platforms, is not shipped with OS X.

Resolution:

Derby is now available in /usr/share/derby.

Radar #6606827

jhat fails to run.

Description:

Running jhat with a heap dump file would fail with a RuntimeException.

Resolution:

This issue has been resolved.

Java VM Tools

Radar #6225464

Java VisualVM not present in Java SE 6.

Description:

Java VisualVM was not present in Java SE 6.

Resolution:

Java VisualVM is now distributed with Java SE 6 on OS X.

Java Web Start

Radar #6195034

The JVM architecture preference is not honored if the JNLP encoding is "utf-8".

Description:

A Web Start application will launch in 32-bit, even if Java Preferences prefers a 64-bit JVM if the JNLP file has a "utf-8" encoding.

Workaround:

Specifying the "arch=x86_64" option in the resources section of your JNLP file will force Web Start to run in 64 bit mode. Alternately, the JNLP encoding can be set to "macintosh".

Radar #6209806

The "Install Shortcuts" and "Go to Homepage" functions in the Java Preferences cache viewer don't work.

Description:

The "Install Shortcuts" and "Go to Homepage" buttons on the cache viewer window of Java Preferences do not do anything.

Resolution:

This issue has been addressed.

Radar #6246256

Applets and Web Start applications fail to obtain resources with URL obtained from Class.getResource().

Description:

A problem in the 1.5 Java deployment classes prevented resources obtained though a derived URL from a Class.getResource() URL failed to obtain the requested resource.

Resolution:

Java SE 6 deployment classes are used for all machines as of Java for OS X v10.5 Update 4. This issue has been resolved.

Radar #6432705

Some Webstart apps that had a desktop shortcut did not have the correct Dock icon and menu bar.

Description:

Some Webstart applications that create a desktop shortcut launched with an incorrect Dock icon and name.

Resolution:

This issue has been resolved.

Radar #6434184

Setting the property apple.laf.useScreenMenuBar to true did not result in using ScreenMenuBar.

Description:

Some Webstart applications that requested the ScreenMenuBar by setting the apple.laf.useScreenMenuBar property in the jnlp or programatically failed to use the ScreenMenuBar.

Resolution:

The ScreenMenuBar property apple.laf.useScreenMenuBar works correctly now.