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 Accessibility
Java Applets
Java Application Support
Java Aqua LAF
Java AWT
Java Documentation (developer)
Java Engine
Java Events
Java Graphics
Java HotSpot
Java InputMethods
Java JavaLib
Java JDK
Java PB Templates
Java Printing
Java Security
Java Sound
Java SWT Support
Java Text
Java Toolkit
Java Tools
Java Web Start
JScrollPane contents were not visible to VoiceOver
The contents of JScrollPanes are now traversable by VoiceOver.
This problem is now fixed in Mac OS X 10.5.
Safari hangs if an applet specifies an 'image' but the image can't be found
Safari became stuck with a spinning beach ball when an applet specified an 'image' as part of its parameter list, but the image file could not be found on the server.
This problem is now fixed in Mac OS X 10.5.
Can't detect Java version from a web browser
Prior to Mac OS X 10.5, the Java plugin reported its version through the plugin's description attribute in JavaScript. The MIME types reported by the plugin were incorrect.
The currently selected version of Java used for applets now reports MIME type information consistent with Sun's Java plugin for other platforms via the navigator.mimeTypes array. You can look for 'application/x-java-applet;version=x.x' for all major versions of Java up to 1.5 or 1.4.2, and 'application/x-java-applet;jpi-version=1.5.0_13' or 'application/x-java-applet;jpi-version=1.4.2_16', depending on the selected version of Java.
Help books in bundled Java applications are not registered with the Help viewer
In prior versions of Java, a Java application could bundle a help book in the application and it would be automatically registered with the Help viewer. Starting in Java 1.4.1, this functionality was lost.
Java applications with bundled help books are now automatically registered with the help viewer if the Java property "apple.awt.useSystemHelp" is set to "true". If you were using the workaround provided in the HelpHook code sample, it will continue to work, but is no longer needed as of Mac OS X 10.5.
The application menu in Java applications was not localized for many languages
Java is now localized into all of Mac OS X's standard languages.
This problem is now fixed in Mac OS X 10.5.
Bundled Java applications cannot request a 64-bit Java VM
Bundled Java applications use a 32-bit Java VM by default, even on 64-bit-capable hardware.
Java applications can specify which architecture will be used for the application. To do this, add an array in the Java dictionary of the application's Info.plist named "JVMArchs". Each element in the array indicates the preferred hardware architectures you want your application to use. If the first choice is not available, the second will be used, and so on. You may also specify per-architecture settings for the Java dictionary keys "VMOptions" and "ClassPath". Use a key of "VMOptions.<architecture>" to specify Java VM options that should only be used for the specified architecture. Use a key of "ClassPath.<architecture>" to specify a class path that should be used for the specified architecture. The per-architechture values are set in addition to those specified in the non-architecture-specific key, and will override the non-architecture-specific values, if applicable.
JavaApplicationStub is not backward compatible
Old stubs are ppc-only, and do not work on 10.3.9 when QT7.1 is installed. New stubs do not work on older OS versions.
The current JavaApplicationStub works on ppc and intel and is backward compatible to 10.1.5. Note that for code developed in Xcode 3.0 to run on Java 1.3.1 references to com.apple.eawt must be removed and the property apple.laf.useScreenMenuBar will not work since both were introduced in Java 1.4. Furthermore, Java application bundles created by Xcode 3.0 are missing the PkgInfo file and appear as directories in Finder on 10.1.5. Copying a PkgInfo file from a bundle created by Jar Bundler remedies this.
JToolbar buttons did not have a pressed icon
JToolbar buttons now have a Mac OS X toolbar style, and icons on each JButton now have a pressed and focused icon synthesized for them.
This problem is now fixed in Mac OS X 10.5.
There has been no way to create a circular indeterminate progress indicator in Java.
It is now possible to create a circular indeterminate progress indicator from a JProgressBar in Swing. Setting the "JProgressBar.style" client property to "circular" will create a small round indicator when the progress bar has been setIndeterminate(true). Please see tech note TN2196 "New Control Styles available within J2SE 5.0 on Mac OS X 10.5" for more information.
This problem is now fixed.
Bi-directional text did not render correctly in JTextComponents and the insertion point indicator did not match up with the actual insertion point
The Sun2D text renderer now contains appropriate shaping hints to handle bidi text, and is now the default renderer on Java for Mac OS X.
This problem is now fixed in Mac OS X 10.5.
JTooltips did not match the native platform appearance, and appeared underneath certain UI components (the window resize indicator)
JTooltips were conditionally implemented as lightweight or heavyweight popup windows depending on their location and intersection with parent windows. Now in Leopard, Java implements all popup windows as heavyweight windows. These heavyweight windows have shadows when the Aqua look and feel is installed, and have a flat appearance when other look and feels are installed (ex: Metal or GTK).
This problem is now fixed in Mac OS X 10.5.
JTable headers did not match the native Mac OS X appearance (centered alignment)
JTable headers are now leading (usually left) aligned in the Aqua look and feel. The default alignment in all Sun-provided look and feels is centered.
This problem is now fixed in Mac OS X 10.5.
JSliders did not match the native Mac OS X slider behavior
JSliders now snap-to-ticks as the thumb is dragged, instead of smoothly dragging and snapping after the mouse is released. Single clicks on JSlider tracks now set the thumb value directly under the mouse click instead of incrementing the thumb towards the click point. This behavior varies from all other Sun provided look and feels.
This problem is now fixed in Mac OS X 10.5.
Horizontal mouse wheel scrolling did not work in JScrollPanes
Horizontal scroll events are now delivered to JScrollPanes as Shift+ScrollWheel events, since there is no horizontal scrolling API in Java. Horizontal scrolling mouse events will now move the content view horizontally, along with Shift key modifier events.
This problem is now fixed in Mac OS X 10.5.
JSliders did not honor the "Slider.paintThumbArrowShape" client property
The "Slider.paintThumbArrowShape" client property is used by the Metal look and feel to indicate that the slider should show an arrow thumb instead of a round thumb. The Aqua look and feel now honors this property as well.
This problem is now fixed in Mac OS X 10.5.
JTextFields did not match the native disabled Mac OS X text field appearance
JTextFields now have a visually distinct border color when they are disabled.
This problem is now fixed in Mac OS X 10.5.
There has been no way to specify smaller versions of the default Mac OS X Aqua controls
Many JComponents now change their default size, appearance, and font when the "JComponent.sizeVariant" client property is set to "small" or "mini". Please see the tech note "New Control Styles available within J2SE 5.0 on Mac OS X 10.5" for more information.
This problem is now fixed.
JOptionPanes did not match the native Mac OS X dialog appearance
Default info JOptionPanes now use the application's icon, as per the Aqua User Interface Guidelines instead of a message bubble icon. Warning and error JOptionPanes now show the application's icon badged onto the warning or error icon as per the Aqua User Interface Guidelines.
This problem is now fixed in Mac OS X 10.5.
JTextFields did not match the native focus/selection behavior of Mac OS X
JTextFields now select their contents when they gain focus though keyboard tab cycling. If the insertion point is in the middle of the text, the insertion point will remain and the entire text will not be selected.
This problem is now fixed in Mac OS X 10.5.
JComboBoxes could not select items using the keyboard
JComboBoxes now show popups, move the selection, and commit the selection using the up, down, and enter keys as expected.
This problem is now fixed in Mac OS X 10.5.
There is a new implementation of the Aqua Look and Feel in Mac OS X Leopard. All references to the apple.laf.* package are deprecated.
The Aqua Look and Feel in Mac OS X Leopard is a new implementation, and does not provide backwards compatibility to any client code that uses classes in the apple.laf.* package. The legacy Aqua Look and Feel classes are present in this release for Mac OS X, but will be disabled and/or removed in future releases of Java on Mac OS X.
Use the values installed in the UIManager to obtain system colors, icons, and other features of the native platform appearance. There are also numerous new client properties in Java for Mac OS X Leopard to modify existing standard controls. Please file bugs at http://bugreport.apple.com to request additional features not provided by the Aqua Look and Feel.
JPasswordFields did not match the native password field appearance in Mac OS X.
JPasswordFields now use the bullet character instead of asterisks as the default echo character. This is different from all other Sun provided look and feels.
This problem is now fixed in Mac OS X 10.5.
Accelerator mnemonic keys are not consistent with the Aqua user interface
Java no longer paints the underlined mnemonic character for components that have an accelerator key set until the user holds down the "option" key. The same accelerator behavior is still present, but the underline is not drawn on menus or controls until "option" key is held down by the user.
This problem is now fixed.
JTextAreas did not match the native selected appearance of text regions in Mac OS X.
JTextAreas now retain a light grey selection region when they are not focused.
This problem is now fixed.
JTextFields had clipped focus rings.
JTextFields now show a full focus ring around their exteriors when they are laid out using their preferred size. JTextFields that are vertically constrained smaller than their preferred height will progressively clip their focus rings and maintain their horizontal insets. JTextFields that are setOpaque(true) will clip their focus ring on all sides, and will have no exterior padding.
This problem is now fixed.
There existed no way to create a search field in Java resembling the search fields in Mac OS X.
JTextFields can now be converted into search files using the "TextField.variant" client property set to "search". Please see the tech note "New Control Styles available within J2SE 5.0 on Mac OS X 10.5" for more information and additional options to configure JTextField based search fields.
This problem is now fixed.
The SystemColor color instances did not reflect the actual color values used in Mac OS X.
The SystemColor colors have been updated, and several now update live based on the selection in the Appearance Preference Pane (example: SystemColor.textHighlight).
This problem is now fixed in Mac OS X 10.5.
Titled borders do not look like the Mac OS X group box appearance
Titled borders cannot be set to the Mac OS X group box appearance because all the items inside of the bordered component would have to be setOpaque(false) to match the group box background color. This behavior can be elected into voluntarily though using a value pre-populated into the UIManager.
To create a single titled border with the Mac OS X group box style:
Border border = UIManager.getBorder("TitledBorder.aquaVariant"); |
if (border == null) border = BorderFactory.createEtchedBorder(); |
BorderFactory.createTitledBorder(border, "Title"); |
To use the Mac OS X group box style on all titled borders:
Border border = UIManager.getBorder("TitledBorder.aquaVariant"); |
if (border != null) UIManager.put("TitledBorder.border", border); |
JScrollBars become unusable when shrunk
JScrollBars now remove their arrows when shrunk smaller than 64 points. The thumb is still available for moving the content until the size of the scroll view becomes smaller than the minimum size of the thumb.
This problem is now fixed.
Swing JOptionPane dialogs do not show the current application icon
As the Aqua Human Interface Guidelines prescribe, every application on Mac OS X should show its application icon in modal dialogs requiring the user's attention. Java now provides this support in Swing JOptionPane icons. Information, Question, and Plain dialogs that used the "info" icon now use the bundled application's icon instead. Warning and Error dialogs now also have the warning or error icon, with the application's icon superimposed on top of it.
This problem is now fixed.
Cocoa NSViews cannot host a java.awt.Frame
Java on Mac OS X has never had support for embedding a java.awt.Frame in a Cocoa NSView.
Mac OS X Leopard offers a new framework called JavaFrameEmbedding.framework that provides view-level support for embedding Java frames in a window. See the headers in that framework or the sample code for JavaFrameEmbedding for more information.
Java windows should be able to opt into the textured appearance individually
There are now a number of per-window client properties that can be set including palette style titlebars, window opacity, and textured background. See tech note TN2196: "New Control Styles available within J2SE 5.0 on Mac OS X 10.5" for more information.
This problem is now fixed.
Windows set to full screen mode with the "apple.awt.fakefullscreen" system property did not hide the menu bar or dock
Full screen windows now hide the menu bar and dock when the "apple.awt.fakefullscreen" system property is set.
This problem is now fixed.
There is no way to create a Java window with a document "proxy icon".
There is a new client property ("Window.documentFile") that can be added to the JRootPane of each heavyweight window that takes a File object as a key. When this client property is set, the window will then show a document "proxy icon" next to it's title. Please see tech note TN2196 for more information.
This problem is now fixed.
Drag-and-drop of files to a Java application fails if the file name contains non-Roman characters
Files with non-Roman characters could not be passed to java.io.File objects.
Java now pre-composes all filenames of files dragged to Java applications or chosen via a JFileChooser. Files created from File.list() and File.canonicalize() are also normalized to pre-composed unicode.
BigDecimal Backward Compatibility
In J2SE 5.0, BigDecimal.toString() returns a value using scientific notation instead of the value as a string, the standard behavior in Java 1.4.2.
Calling BigDecimal.toPlainString() returns the value as a string.
Bundled applications cannot run in 64-bit mode
Bundled Java applications deployed on 64-bit Intel machines cannot be forced to use a particular architecture by clicking a checkbox in the Get Info panel for the application.
If you want your bundled Java application to run in 64-bit you need to make the following changes to the Java dictionary in the Info.plist file. -- Set the value of "JVMVersion" to 1.5* or 1.5+. -- Add an array element named "JVMArchs". Each of the elements must be of type String, and specify the order of preference for architectures. The available architectures of the machine running the application are compared against this list, and the first one that matches is chosen. For example, <key>JVMArchs</key> <array> <string>x86_64</string> <string>i386</string> <string>ppc</string> </array> would choose 64-bit Intel if available, then i386. If the application is run on Power PC hardware, it will run as it did before Mac OS X 10.5. If you specify a list and none of your choices could not be satisfied, the application will not launch.
Running Java applications in 64-bit mode
Java 1.5 on Mac OS X 10.5 will run in 64-bit mode, but the command line 'java' will use the 32-bit Java VM by default.
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.
JDI returns incorrect bytecodes for wide version of ALOAD and ASTORE opcodes
Fixed JDI to return correct bytecode.
This problem is now fixed.
gdb crashes while trying to attach to a Java application
gdb crashes while you are trying to attach to a Java application.
If gdb crashes while you are trying to attach to a Java application, copy /System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/MacOS/JavaApplicationStub into your application's bundle at <name> app/Contents/MacOS/JavaApplicationStub.
DropTargetDragEvent.rejectDrag() did not have any visible effect
Calling rejectDrag() on a DropTargetDragEvent now properly rejects the drag, and drag object bounces back to its source.
This problem is now fixed.
JViewPort in BLIT_SCROLL_MODE don't paint properly with Sun2D renderer.
JViewPort now paints correctly while scrolling with Sun2D renderer. The Sun2D renderer is now the default for Mac OS X v10.5.
This problem is now fixed.
ImageIO.read() does not properly decode TIFF images with Sun2D renderer.
ImageIO.read() now decodes TIFF images correctly with Sun2D renderer. The Sun2D renderer is now the default for Mac OS X v10.5.
This problem is now fixed.
Gradient fills of Java GeneralPath don't respect the even-odd winding rule for the Quartz pipeline.
Gradient fills of Java GeneralPath now works correctly with the even-odd winding rule for the Quartz pipeline. Quartz is not the default—the Sun2D renderer is now the default for Mac OS X v10.5.
This problem is now fixed.
Java crashes resulted in 2 separate crash logs: CrashReporter's log and the JavaNativeCrash log.
For Java 1.5 crashes, the CrashReporter crash log now adds all of the information that the JavaNativeCrash log previously did. There no longer is a JavaNativeCrash log.
This problem is now fixed.
Concurrent Mark Sweep Garbage Collection Issues
Applications that use the "+UseConcMarkSweepGC" flag (Concurrent Mark Sweep Garbage Collection algorithm) tended to be unstable.
This problem is now fixed.
On Intel Macs, using a custom JVMTI agent may cause crash.
Custom JVMTI agent native libraries will cause a crash due to EXC_BAD_INSTRUCTION if they call out to another library with a misaligned stack.
This crash can be avoided by adding the __attribute__((force_align_arg_pointer)) gcc attribute to the declaration of each function in the custom JVMTI agent native library.
Java crashes when passed -Dsun.boot.class.path argument, if that path contains more than one directory
If a users passed -Dsun.boot.class.path with more than one directory on the path, Java would crash.
This problem is now fixed.
All but the first character is stripped from native key events
Keystrokes that generated multiple characters only generated a KEY_TYPED for the first character.
If a keystroke generates multiple characters (common on Hebrew and Cherokee Nation layouts) we now generate KEY_TYPED events for each character generated. If the keystroke went to a component that is accepting input method events, an InputMethodEvent of type INPUT_METHOD_TEXT_CHANGED with all of the characters is generated.
Incorrect key events generated for dead key strokes
Key events for the first part of a dead-key combination were not being generated correctly. For example, option + e was giving you VK_DEAD_ACUTE + ALT.
option + e now generates a KEY_PRESSED of VK_E + ALT, as expected. If no modifiers were pressed, and the key generates a dead key character we generate the dead key character as we did before.
Java encoding doesn't work as expected
The class name in Unicode should always be found and loaded, and be able to put into a jar file. It had been observed that when running programs in Java on Mac OS X some character sets didn't display properly and couldn't be found in the jar file.
This problem is fixed in Mac OS X v10.5
Java does not contain the latest time zone data
Canada changed its date for switching to Daylight Savings Time, as well as numerous other changes to time zone information.
Java 1.5 contains the most recent version of the Olson time zone data (2007g) from August, 2007.
Java 1.5 uses ShiftJIS encoding when the primary language is Japanese
By default, Java 1.5 would use ShiftJIS encoding when the primary language is set to Japanese. Now it uses UTF-8.
This problem is now fixed.
The KH characters are divided in Java Preferences
The KH characters is divided in Java Preferences.
This problem is now fixed.
Support .dylib as a native library suffix.
Prior to Mac OS X 10.5, the only extension for Java native libraries was jnilib.
The Java VM will first try to load a native library named lib<library>.jnilib. If that fails, it will look for a native library named lib<library>.dylib. If that fails, an UnsatisfiedLinkException is thrown.
Java-related Xcode projects need to be updated for compatibility and consistency
The Java Xcode templates used the legacy Java build system.
All new projects created with Xcode now use the Ant build system to build their Java components, which is now recommended for all Java development with Xcode.
Printing to shared printers did not work.
When attempting to print to a "Shared Printer" (instead of a "Bonjour Printer" or a manually added printer), the print job would be bounced to the default printer, or if no printers were set, it would be lost.
This issue has been resolved. Print jobs sent to printers shared though other computers now correctly print.
Shared CUPS printers with punctuation or non-roman characters were not accessible to Java.
Shared CUPS printers are now available to Java Printing, provided they are added in the Mac OS X "Printing & Fax" Preference Pane, regardless of any characters in the name.
This problem is now fixed.
Root certificates can now have their own trust settings
In Mac OS X 10.5 users can now assign trust settings to root certificates in the System Roots keychain in Keychain Access.
The Java plugin relies on the Mac OS X security infrastructure to provide a list of trusted root certificates. If the user has changed any trust settings on the root certificates, they are honored when establishing trust for a signed JAR or https connection.
Java Sound Mixers for USB/FireWire Mics: request for improved device info.
Java Sound now provides a more descriptive info (device name and vendor name) for the Mixer object.
This problem is now fixed.
USB Microphones are not recognized as default input device.
Java Sound now returns the default input device as the first entry in an array specified by given selection criteria.
This problem is now fixed.
Can't use the AWT from a Carbon application
Prior to Mac OS X 10.5, native Carbon applications could not use JNI to access Java code that started the AWT.
Carbon applications can now access the AWT if they follow the guidelines in Tech Note 2147. Specifically, they must start the Java VM on a non-main thread, and must take care to only make Carbon or Cocoa calls on the main thread.
SWT applications that also create AWT windows hang on exit.
An SWT application that created an AWT window would not exit cleanly when the last window was closed. The spinning beach ball appeared and you had to force quit the application.
This problem is now fixed in Mac OS X 10.5. Quitting the application via the application menu or closing all windows now ends the application without any problems.
Obtaining the GlyphVector outline of characters in certain fonts yielded "crumpled" outlines
Some PostScript fonts containing cubic paths were truncating some point information about the character stroke. This issue has been resolved for all line, quad, and cube path components.
This problem is now fixed.
Bi-directional character information did not render correctly in the Sun2D renderer
All bi-directional languages (Arabic, Hebrew, etc) should now renderer correctly in all Java text fields.
This problem is now fixed.
Can't disable Command-H and Command-Q as shown in TN2062
The techniques described in Section 13 of TN2062 no longer work with Java 1.4.2 or later. Attempting to get the Quit or Hide Application menu items fail with a return value of menuItemNotFoundErr.
Section 13 of TN2062 describes how to disable the Hide Application or Quit item for Carbon and Cocoa applications. Java 1.3.1's implementation of the AWT was based on Carbon, but Java 1.4.2 and later are based on Cocoa, so the Carbon examples in this section no longer apply. If you need to disable these menu items, create your own NIB file with Interface Builder, and set the property 'apple.awt.application.nib' to be the full path to the NIB file. You may wish to write a short native method that returns the path to the localized NIB file, and then set the value of that property to the path found.
The rights to redistribute the JavaApplicationStub launcher binary are unknown
The license to redistribute the JavaApplicationStub are available from the "JavaApplicationStub License" menu item in the "Help" menu of the Jar Bundler application in /Developer/Tools. The full text of the license is also available at /System/Library/Frameworks/JavaVM.framework/Resources/Documentation/JavaApplicationStub-License.rtf.
This problem is now fixed.
Java developers would like JUnit available on Mac OS X.
JUnit 4.1 is now included in the base install of Mac OS X 10.5 in /usr/share/junit.
This problem is now fixed.
Java developers would like Maven available on Mac OS X.
Maven 2.0.6 is now included in the base install of Mac OS X 10.5 in /usr/share/maven.
This problem is now fixed.
Java Web Start could not be used to deploy Eclipse RCP applications that used SWT
Java Web Start was not able to correctly start up applications that used the SWT, even if you specified -XstartOnFirstThread as a VM argument.
Java Web Start now supports deployment of applications that use the SWT. See the instructions for using SWT in a JNLP-based application at <http://www.eclipse.org/swt/jws/>. You will also need to add a 'java-vm-args' attribute to the j2se element of the Mac OS X-specifc resources block: <resources os="Mac OS X"> .... <j2se version="1.5*" java-vm-args="-XstartOnFirstThread"/> .... </resources>
JNLP applications won't run if download folder's name has a non-ASCII character in it
Java Web Start wasn't able to open a JNLP file if the folder it was downloaded to had a non-ASCII character in its name.
This problem is fixed in Mac OS X v10.5
Java Web Start crashed when opening some JNLP files
Java Web Start crashed if the <description> node of the <information> section was empty.
This issue has been resolved.
© 2007 Apple Inc. All Rights Reserved. (Last updated: 2007-10-31)