< Previous PageNext Page > Hide TOC

Known Issues

The issues discussed here are known issues with the Mac OS X implementation of Java 1.4.1. These issues may or may not be resolved in a future release of Java for Mac OS X. Information on tracking these bugs is available in “Filing and Tracking Bugs.” Additional bug reports on these issues are welcome.

Each issue is broken down as follows:

In this section:

Java Aqua LAF
Java AWT
Java Events
Java Graphics
Java HotSpot
Java Printing
Java Security
Java Sun Plugin
Java Swing
Java Text
Java Tools
Java Web Start


Java Aqua LAF

Radar #3156528

JFrames are not garbage collected when using the screen menu bar.

Description:

If the screen menu bar is enabled via com.apple.laf.useScreenMenuBar, JFrames with menu bars set with setJMenuBar may not be garbage collected. If many such frames are created and then closed, this may result in an OutOfMemoryError.

Workaround:

Explicitly remove the JMenuBar when disposing of the frame.

Radar #3166127

JOptionPane dialog buttons have mnemonics.

Description:

JOptionPane.showConfirmDialog displays Yes and No with an underscore under the Y and the N. These underscores should not be visible with the Aqua look and feel.

Workaround:

None.

Radar #3167784

JTextArea.setCaretPosition does not place caret correctly.

Description:

After appending text to a JTextArea and then calling setCaretPosition to set the caret at the end of the appended text, the caret is not always placed at the end of the text.

Workaround:

None.

Java AWT

Radar #3134617

Modal dialogs don't render parent windows inactive.

Description:

With Java 1.3.1 in Mac OS X, a user could not minimize a Java Frame that was behind a modal Java window. In Java 1.4.1, this is possible. This difference arises due to the use of Cocoa for Java windows and is being analyzed as to whether it should be considered a bug.

Workaround:

None.

Java Events

Radar #3164718

Control-drag generates mouseMoved, not mouseDragged.

Description:

Moving the cursor with the Control key and the mouse key held down generates mouseMoved events. This should generate mouseDragged events.

Workaround:

None.

Java Graphics

Radar #3160445

Apparent random crashes of Java applications.

Description:

Some applications that use Java2D can crash unexpectedly with a crash log that specifies a failure in Java_apple_awt_CRenderer. This is a known issue and is being investigated.

Workaround:

None.

Radar #3160678

GradientPaint not working for custom buttons.

Description:

One way to achieve a translucency effect in a component is to use gradient paint with alpha. This does not work in this release. A solid color may be displayed instead.

Workaround:

None.

Radar #3163400

Crash in mutlithreaded draw.

Description:

Multithreaded drawing windows with AWT buttons may result in a crash.

Workaround:

None.

Radar #3174367

Poor graphics performance with some image types.

Description:

32-bit RGB images with alpha can have the alpha channel pre multiplied or not. If your Java2D application makes use of ARGB images where the alpha channel has not been premultiplied, you might notice poor graphics performance in Mac OS X. This is especially evident where the ARGB image is being drawn into as a graphics context.

Workaround:

When constructing ARGB images, designate the image type as ARGB_PRE instead of ARGB.

Java HotSpot

Radar #3129210

The -Xincgc VM flag does not work.

Description:

The train garbage collector is not implemented in Java 1.4.1 so the -Xincgc does not have any effect on your code.

Workaround:

None.

Java Printing

Radar #3183076

Java Print Service API does not work.

Description:

The Java Print Service API available in the javax.print.* packages is not functional. This should not be confused with the standard Java 2 printing API available in java.awt.print which is fully functional.

Workaround:

None.

Java Security

Radar #3173133

Java Kerberos does not work well with the default Mac OS X Kerberos implementation.

Description:

There are known issues with the interaction of Java and the operating system when dealing with Kerberos authentication. The Java environment is unable to correctly locate the credentials cache or tickets on the system.

Workaround:

None.

Java Sun Plugin

Radar #2903948

httpsessions are not maintained for Applets.

Description:

Applets that make multiple HTTP URLConnections initiate a new httpsession with the server every time. If cookies are used to determine connections, note that cookie data is not neccesarily shared between the browser and the Java Plug-in. This is at the discretion of the browser vender.

Workaround:

Do not make session information dependent on cookies.

Java Swing

Radar #2884768

JMenu.getLocationOnScreen reports incorrect value for screen menu bar.

Description:

When the menu bar is set to be at the top of the screen with apple.laf.useScreenMenuBar, getLocationOnScreen returns the location of JMenu components as if they were not in the menu bar.

Workaround:

None.

Radar #3168263

javax.swing.JFileChooser.rescanCurrentDirectory doesn't update the file listing.

Description:

If you move files into or out of a directory, javax.swing.JFileChooser.rescanCurrentDirectory does not reflect these changes as it should.

Workaround:

None.

Radar #3172089

Resizable windows have no indicator of a resize area.

Description:

By default, Java applications do not have the resize control in the bottom right corner that native Mac OS X applications have. Since many Java developers are not accustomed to having this resize control present when they design their user interface, the decision has been made to not include it by default.

Workaround:

If you do want the resize indicator in your windows, add the apple.awt.showGrowBox system property. Set it to true either at the command line, with the -D flag to java, or in your code with System.setProperty.

Java Text

Radar #2826318

Double-byte characters are not displayed correctly if the language preference is not set.

Description:

Using logical fonts for screen font or in an editing window, double-byte characters don’t display correctly in the default Roman script system.

Workaround:

Change the script behavior setting in the Language pane of the International System Preferences.

Radar #3121780

Many of the fonts available in Mac OS X appear to be broken.

Description:

If you are constructing new fonts based on the value returned from aFont.getFontName, where aFont is one of the fonts returned from GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts(), not all of the system fonts in Mac OS X are valid fonts for use in Java.

Workaround:

Use Font.getName instead of Font.getFontName.

Java Tools

Radar #2962223

Jar Bundler cannot open existing application bundles.

Description:

Jar Bundler is useful for building new application bundles from JAR files or class files. It does not have functionality included for modifying existing application bundles.

Workaround:

None, although you can modify the Info.plist settings of an application bundle in any text editor. Most of the Jar Bundler settings are stored in the Info.plist.

Radar #3166010

Project Builder uses gdb for Java debugging.

Description:

By default, Project Builder uses gdb instead of jdb for Java debugging.

Workaround:

In the Target pane select your executable in the Executables list. You should now see a pane that lets you modify the characteristics of that executable. In the Launch Configuration settings change "Configure" to "Debug action." Change "Launch using" to "Java Debugger".

Java Web Start

Radar #2905825

Java Web Start applications may hang for network home directories.

Description:

If a home directory is on an NFS mounted volume, Java Web Start applications hang shortly after they have been launched.

Workaround:

Use either a local account or change the network home directory to a AFP.



< Previous PageNext Page > Hide TOC


© 2003 Apple Computer, Inc. All Rights Reserved. (Last updated: 2003-06-11)


Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.