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:
A Radar number that Apple uses to track the issue is followed by a brief statement of the issue.
The Description field provides more details about the issue.
The Workaround field may give you additional information about how you can work around that particular issue in your code. If it says, “None,” there is at the moment no currently a suggested workaround for that particular problem.
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
JFrames are not garbage collected when using the screen menu bar.
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
.
Explicitly remove the JMenuBar when disposing of the frame.
JOptionPane dialog buttons have mnemonics.
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.
None.
JTextArea.setCaretPosition does not place caret correctly.
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.
None.
Modal dialogs don't render parent windows inactive.
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.
None.
Control-drag generates mouseMoved, not mouseDragged.
Moving the cursor with the Control key and the mouse key held down generates mouseMoved
events. This should generate mouseDragged
events.
None.
Apparent random crashes of Java applications.
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.
None.
GradientPaint not working for custom buttons.
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.
None.
Crash in mutlithreaded draw.
Multithreaded drawing windows with AWT buttons may result in a crash.
None.
Poor graphics performance with some image types.
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.
When constructing ARGB images, designate the image type as ARGB_PRE instead of ARGB.
The -Xincgc VM flag does not work.
The train garbage collector is not implemented in Java 1.4.1 so the -Xincgc
does not have any effect on your code.
None.
Java Print Service API does not work.
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.
None.
Java Kerberos does not work well with the default Mac OS X Kerberos implementation.
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.
None.
httpsessions are not maintained for Applets.
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.
Do not make session information dependent on cookies.
JMenu.getLocationOnScreen reports incorrect value for screen menu bar.
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.
None.
javax.swing.JFileChooser.rescanCurrentDirectory doesn't update the file listing.
If you move files into or out of a directory, javax.swing.JFileChooser.rescanCurrentDirectory
does not reflect these changes as it should.
None.
Resizable windows have no indicator of a resize area.
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.
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
.
Double-byte characters are not displayed correctly if the language preference is not set.
Using logical fonts for screen font or in an editing window, double-byte characters don’t display correctly in the default Roman script system.
Change the script behavior setting in the Language pane of the International System Preferences.
Many of the fonts available in Mac OS X appear to be broken.
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.
Use Font.getName
instead of Font.getFontName
.
Jar Bundler cannot open existing application bundles.
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.
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
.
Project Builder uses gdb for Java debugging.
By default, Project Builder uses gdb
instead of jdb
for Java debugging.
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 applications may hang for network home directories.
If a home directory is on an NFS mounted volume, Java Web Start applications hang shortly after they have been launched.
Use either a local account or change the network home directory to a AFP.
© 2003 Apple Computer, Inc. All Rights Reserved. (Last updated: 2003-06-11)