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.

All issues listed refer to Java SE 6 on both OS X v10.5 and 10.6, unless otherwise noted.

Java Applets

Radar #8984001

Default in-process applet heap (96MB) is too small for 64-bit.

Description:

The default heap size of in-process applets has been 96MB, which matches other platforms. In 64-bit, the same applet may require more heap space than in 32-bit because object references can be up to twice as large.

Resolution:

This issue has been resolved. The default heap for in-process applets in 64-bit browsers is now 192MB.

Radar #9157169

Unsigned applets do not allow drag-and-drop operations by default.

Description:

Recent security changes have restricted the ability to receive or initiate drag-and-drop operations from unsigned Java applets.

Workaround:

Explicitly enable drag-and-drop support for Swing components in the in-process plug-in. Alternately, sign the applet to enable this functionality by default.

Java Aqua LAF

Radar #8005135

JRootPanes in J2SE 5.0 are not opaque.

Description:

An early workaround during J2SE 5.0 bring-up made JRootPanes transparent; this could cause problems if other content regions were also transparent.

Resolution:

This issue has been resolved. The reason for this workaround was resolved before J2SE 1.5.0_00 GM. JRootPanes in J2SE 5.0 are now opaque by default.

Radar #8386501

Arabic text often breaks antialiasing in Aqua.

Description:

Due to an old pre-Java SE 6 antialiasing workaround, more complex character sets that rely on fall-back glyph substitution would often lose the default antialiasing setting.

Resolution:

This issue has been resolved. Aqua now uses the standard Java SE 6 model for expressing antialiasing defaults on Swing controls.

Radar #9051431

JCheckboxes and JRadioButtons need an indeterminate state in J2SE 5.0.

Description:

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

Resolution:

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

Radar #9059507

Selection can disappear from JTrees using a hidden root node.

Description:

Keyboard navigation in Aqua JTrees does not behave correctly when the root is hidden. When the selection is on a top-level node, pressing the left arrow key causes the selection to disappear.

Resolution:

This issue has been resolved.

Radar #9575814

Clicking on a JTree disclosure triangle still fires, even if mouse-up occurs outside triangle bounds.

Description:

A JTree node will toggle open or closed when clicked on, even if the mouse is dragged away from the disclosure triangle area and released.

Resolution:

This issue has been resolved.

Java AWT

Radar #7607993

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

Description:

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

Resolution:

This issue has been addressed in J2SE 5.0.

Radar #9266656

apple.awt.CToolkit.postEvent() occasionally throws NullPointerExceptions in J2SE 5.0.

Description:

Occasionally, an internal logic error in the AWT will cause NullPointerExceptions to be emitted from the CToolkit class. This issue was cosmetic, and did not indicate any actual failure in functionality.

Resolution:

This issue has been resolved in J2SE 5.0.

Radar #9345128

The AWT open file dialog has a "New Folder" button.

Description:

Creating a new folder from an open file dialog (with no save target) is illogical.

Resolution:

This issue has been resolved.

Radar #9426440

AWT sometimes throws internal errors when using "apple.awt.useSystemHelp".

Description:

When using the native OS X HelpBook system, an internal error can occur while the AWT is managing the menu items in the screen menu bar.

Resolution:

This issue has been resolved.

Radar #9460573

Connecting a CALayer to a Plugin2-backed graphics context via JAWT does not always show content.

Description:

When using the new JAWT CALayer API in "Java for OS X v10.6 Update 4", 3D content is not visible without re-adjusting the root CA rendering context to the window layer, which is connected to the browser.

Resolution:

This issue has been resolved. CALayers attached to JAWT surfaces now connect to the underlying window layer, and chain processes back to the browser correctly.

Java Core Frameworks

Radar #8474921

AWT should post a native NSNotificationCenter notification when it completes starting.

Description:

Native applications, JNI libraries, and platform toolkits often need to know when the AWT has started (in order to avoid certain race conditions when loading their own GUI components).

Resolution:

This issue has been resolved. The AWT now posts a JNFRunLoopDidStartNotification to the default notification center when it has finished loading.

Radar #9221012

JavaNativeFoundation unconditionally declares jlong_to_ptr and ptr_to_jlong.

Description:

The JavaNativeFoundation/JNIJNF.h header declares a pair of macros used to convert between jlongs and pointer types that is found in a header internal to the JDK. This unconditional definition conflicts with the JDK header when compiling OpenJDK.

Resolution:

This issue has been resolved. The jlong_to_ptr and ptr_to_jlong macros are now conditionally defined.

Radar #9300407

Java uses several cursors that are present in OS X, but not part of NSCursor.

Description:

Java uses a variety of resize and drag cursors which are present in OS X, but are not part of the NSCursor API.

Resolution:

This issue has been resolved. Additional resize and move cursors were added to the public JavaRuntimeSupport category methods on NSCursor for use by OpenJDK.

Java Deploy

Radar #9145379

The trust record list in Java Preferences does not update when new items are added.

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 in real time.

Resolution:

This issue has been resolved.

Radar #9657512

Some Web Start applications can terminate immediately at launch if 1.4.2 is enabled.

Description:

When J2SE 1.4.2 and the Java console are both enabled, some Web Start based applications launch and then exit when showing the Java console.

Workaround:

Disable J2SE 1.4.2 or deactivate the Java console in Java Preferences.

Java HotSpot

Radar #9143135

HotSpot does not print an error code when failing to allocate large pages.

Description:

If HotSpot cannot allocate large pages (whether using -XX:+ExitOnLargePageFailure or not) the underlying Mach allocation error is not presented in the failure message.

Resolution:

This issue has been resolved. HotSpot now prints the underlying Mach error message when it cannot allocate its heap using large pages.

Java JavaLib

Radar #9107242

Low priority logging thread crashes attempting to connect to the JVM.

Description:

In some situations when using custom bootclasspaths, it is possible for the JVM to crash when a low priority system logging thread attempts to attach to the JVM and reference a new Apple-provided class which is not present on the modified bootclasspath.

Resolution:

This issue has been resolved.

Radar #9330746

Loading the JVM calls setlocale(), causes confusion when using basic functions like isspace().

Description:

As part of a very old workaround, the JVM would call setlocale() when it was negotiating with CoreFoundation to set a locale that both CF and Java could agree exists.

Resolution:

This issue has been resolved. This workaround is no longer required, and setlocale() is no longer called directly, only indirectly by CoreFoundation.

Java Plugin2

Radar #7635927

Dragging AWT scroll bar thumb in out-of-process applets fails to track correctly.

Description:

When running in an out-of-process applet, dragging an AWT scroll bar would cause the drag to track from the wrong coordinate system.

Resolution:

This issue has been resolved.

Radar #8598522

Out-of-process applets can't initiate drag-and-drop operations.

Description:

The internal AWT drag tracking loop would immediately freeze an in-flight drag as soon as it was initiated.

Resolution:

This issue has been partially resolved. Drags now start and track the mouse properly, but they aren't valid drop targets. See 9157169, 9410678, and 9478600 for more details.

Radar #8790094

Dialogs opened by out-of-process applets don't come to the foreground properly.

Description:

Dialogs opened by applets attached to a browser page do not always come to the foreground properly, even though they do inflate the Java applet processes' Dock icons.

Resolution:

This issue has been partially resolved. New dialogs opened by attached applets force all windows and dialogs to the foreground, which is more desirable than none of them coming to the foreground.

Radar #8790184

Applets run out-of-process don't inherit the default text antialiasing property.

Description:

The out-of-process applet plug-in would always force the text antialiasing mode on or off, even if a default setting was not defined.

Resolution:

This issue has been resolved.

Radar #8793661

Some applets did not load correctly from sites with cookies.

Description:

A bug in the browser cookie parsing could cause Java applets hosted on a domain with certain malformed cookies to fail to load completely.

Resolution:

This issue has been resolved.

Radar #9036459

Popups and on-screen coordinates can be frequently wrong.

Description:

Often it would be possible to scroll a page or move the browser window in a way for the applet to lose track of where it is on screen, and show popups or menus at very wrong locations.

Resolution:

This issue has been resolved. The Java applet plug-in now asks the browser for its location on screen, instead of attempting to divine it based on incoming mouse events.

Radar #9217624

Cmd-key applet detach keystroke interferes with multi-select.

Description:

Previously, when holding down the command-key, the applet-detach frame would show, which allows the user to remove the applet from its surrounding browser page. This feature is distracting, and can sometimes interfere with the default focus owner, particularly when the user is attempting to select multiple discontiguous items in a list.

Resolution:

This issue has been resolved. Holding down Cmd+Shift now shows the applet-detach frame.

Radar #9243462

Loading multiple applets on the same page can cause the current app to lose key focus.

Description:

Due to an internal window ownership error, the off-screen windows of out-of-process applet windows can inadvertently steal key focus from the current foreground app.

Resolution:

This issue has been resolved.

Radar #9288731

Selecting text in an out-of-process applet could flicker and leave graphical artifacts behind.

Description:

Performing text selection could cause severe flickering and in some cases leave artifacts or partially drawn regions behind.

Resolution:

This issue has been resolved.

Radar #9314738

Hiding the out-of-process applet process causes attached applets to stop updating.

Description:

An out-of-process applet creates a new window which causes its Dock icon to be created; hiding the process causes still attached applet content in the browser to stop updating. This can also be triggered by selecting "Hide Others" from another application's app menu.

Resolution:

This issue has been resolved.

Radar #9329086

Graphics updates in child components of translated components not communicated to browser.

Description:

Graphical updates in applets that use nested AWT components did not get propagated with the correct coordinates to the browser.

Resolution:

This issue has been resolved.

Radar #9333375

Mouse events are not reliably delivered to out-of-process applets.

Description:

Multiple applets or windows created by applets may cause mouse events not to be reliably delivered to applets attached to a browser's content view.

Resolution:

This issue has been resolved.

Radar #9344761

Drawing single-line operations fail to update in browser.

Description:

When using the CoreAnimation rendering model, the out-of-process applet plug-in could fail to deliver graphics updates for certain single-line graphics drawing operations.

Resolution:

This issue has been resolved.

Radar #9345007

Loading multiple applets on the same page can fail to initialize.

Description:

Sometimes when loading multiple applets on the same page, the graphics context's connection to the browser can be re-initialized multiple times, causing the applets to fail to connect and display at all.

Resolution:

This issue has been resolved.

Radar #9391631

Applets requesting a certain "underbar" version of the JVM could fail to initialize at all.

Description:

Applets that request JVM versions up to a specific underbar version could fail to initialize due to a failure to match a more detailed internal version string.

Resolution:

This issue has been resolved.

Radar #9410678

Drag-and-drop from out-of-process applet stops at applet page boundary.

Description:

In some WebKit based browsers, drag events from outside of the plug-ins bounds are not communicated to the plug-in, so there is no way to continue drag events outside of the applet.

Workaround:

None at this time.

Radar #9448523

J2SE 5.0 and OS X v10.5 cannot adequately support out-of-process applets.

Description:

Due to certain architectural issues in the J2SE 5.0 AWT and the cross-process CoreAnimation graphics context sharing in 10.5, Plugin2 cannot be adequately supported on OS X v10.5. As a result, Plugin2 has been disabled as of "Java for OS X v10.5 Update 10".

Workaround:

To use out-of-process applets, and to continue to receive security updates to Java, Intel-based Mac users are encouraged to upgrade to OS X v10.6 Snow Leopard or greater.

Radar #9472158

Out-of-process applet drawing does not send minimal update rects to browser.

Description:

When using the CoreAnimation drawing model, the out-of-process applet plug-in has not been sending the minimal rectangle of change to the browser. This can cause very high CPU usage for large surface area applets, even if they do small but frequent updates.

Resolution:

This issue has been resolved.

Radar #9478600

Out-of-process applets cannot accept incoming drags.

Description:

Due to lack of NPAPI support, there is no obvious way to observe incoming drag-and-drop operations into the applet plug-in. All incoming drags hit the top-level browser window.

Workaround:

None at this time.

Radar #9600742

Scrolling in an out-of-process applet can result in scrambled scroll region.

Description:

When running an applet in a non-Aqua Look and Feel, it is possible for scroll regions to become corrupted with partial updates.

Resolution:

This issue has been resolved.

Radar #9615270

It is not possible to change the cursor in an applet that is run out-of-process.

Description:

Applets that run out of process could not change the cursor using any standard AWT component region or direct setting APIs.

Resolution:

This issue has been resolved.

Java Security

Radar #7333064

Java Preferences does not write out TLSv1 property that works with J2SE 5.0.

Description:

J2SE 5.0 uses a different default value for the TLSv1 enable/disable preference. Java Preferences was only writing the property out in a Java SE 6-compatible way.

Resolution:

This issue has been resolved.

Radar #7654842

The javax.smartcardio API does not properly determine card reader state in 64-bit mode.

Description:

Certain smartcard initialization routines were not interfacing with the native OS X smartcard API at startup in 64-bit.

Resolution:

This issue has been resolved.

Java Text

Radar #9071263

TrueType fonts not available when running headless.

Description:

By default, Java attempts to register new fonts with the native OS X font system. When running headless, this system is not available, severely limiting the number of fonts available.

Resolution:

This issue has been partially resolved. If the native font system is not available, a fallback strategy attempts to load the font using a Sun2D font file reader instead.

Java VM Framework

Radar #9236737

JavaVM.framework JNI interface needs to delegate to 3rd party JVMs.

Description:

JNI libraries and applications that use the JavaVM.framework can inadvertently load an Apple JVM if a 3rd party JVM is already loaded.

Resolution:

This issue has been resolved. The JavaVM.framework explicitly searches for the "JVM_GetInterfaceVersion" symbol in the current process before attempting to load a JVM on the JVM search paths.

Java VM Tools

Radar #6694533

jstack, jmap, other tools can't instrument 64-bit J2SE 5.0 JVMs.

Description:

The JVM instrumentation tools for J2SE 5.0 were never fully upgraded to support 64-bit, and will only work in 32-bit.

Workaround:

Use Java SE 6 to instrument 64-bit Java processes on OS X v10.5.