 |
Release Notes
Java 2 SDK, Standard Edition
Version 1.4.0
|

|
Contents
Overview
Networking
AWT
Java 2D Technology
Drag and Drop
Internationalization
Accessibility
CORBA, Java IDL, and Java RMI-IIOP
Virtual Machines
New I/O (NIO) APIs
Java Platform Debugger Architecture Technology
Java Web Start
Java Media Framework Bug Affecting Java Sound
Java Plug-in Technology on Netscape 6 Browsers
Comformance on Solaris with OpenWindows
Platform Time Zone Detection on Microsoft Windows
Applet Class Bug
Patches and Kernel Update for Solaris Operating
Environment
Uninstall Bug on Solaris Operating Environment
Linux Notes
Active X Bridge Removed
Forte for Java and NetBeans
Tools and Utilities
Jar File Changes
Notes on Japanese Locale
Serialization
Overview
The Java 2 SDK, Standard Edition, v1.4.0 (J2SDK 1.4.0) is
an upgrade release of the Java platform containing new features and
enhancements in many functional areas. The new features in J2SDK 1.4.0
have been developed in accordance with the Java
Community Process program.
Refer to the following links for more details:
New Features and Enhancements
in 1.4.0
Changes
in 1.4.0
Bugs
Fixed in the Initial 1.4.0 Release
Bugs
Fixed in Subsequent 1.4.0 Update Release Versions
Compatibility between
J2SDK 1.4.0 and Previous Releases
The notes in the following sections describe known bugs,
workarounds, and other important issues to be aware of in this release.
Networking
For information on known bugs and other issues in the
networking functionality of this release, see Networking
Release Notes.
AWT
The following notes pertain to AWT functionality in this release.
Java 2D Technology
The following notes pertain to Java 2D functionality in
this release.
Drag and Drop
The following notes pertain to drag-and-drop functionality
in this release.
- In the Solaris and Linux releases of Java 2 Standard Edition,
SDK 1.3, several of the AWT heavyweight Components exhibited default
drag behavior via the middle mouse button, even if the application did
not identify these Components as DragSources via the java.awt.dnd
API. These Components were implemented using
Motif peers, and Motif provides middle button drag behavior for these
peers by default.
Because of the design of the AWT, and because of bugs in the
Motif library, this default behavior has been the source of numerous
stability problems. Rather than continue to risk the stability of AWT
and Drag & Drop for a niche feature, we have chosen to disable this
feature explicitly in our implementations.
Developers can still identify these Components as DragSources
in their applications using the java.awt.dnd API. This is both
functional and supported.
This approach is superior to relying upon default Motif
behavior in any case, because it enables drag support for these
Components on all platforms, not just Solaris and Linux.
- A change in Drag&Drop behavior was introduced in J2SE 1.3.1
as part of the fix for bug 4313374.
The changed behavior is also part of J2SE 1.4.0. In the new behavior,
drag operations are blocked until any previous Drag&Drop operation
is completed. Prior to J2SE 1.3.1, drag operations could be initiated
even if another drag-and-drop operation was currently in progress.
A well-constructed application will call either DropTargetDropEvent.rejectDrop(),
or both DropTargetDropEvent.acceptDrop(int) and DropTargetDropEvent.dropComplete(boolean)
inside DropTargetListener.drop(DropTargetDropEvent). This
will terminate the current Drag&Drop operation before the
Drag&Drop subsystem can recognize and initiate another. Therefore,
this change in behavior should only affect incorrectly written
applications.
Internationalization
The following notes pertain to internationalization
functionality in this release.
- The getAvailableLocales methods in packages java.text
and java.util will not work properly when the Java 2 SDK or
Java 2 Runtime Environment is installed at a path containing a
characters that require URL-encoding, giving the false impression that
international locales are not supported. On Microsoft Windows
platforms, the default installation location of the Java 2 Runtime
Environment is C:\Program Files\..., which contains a space
character. Because the space character requires URL-encoding, this
problem will be present in all default installations of the Java 2
Runtime Environment. This problem is being tracked as bug 4638772.
- The default currency used by the java.text.NumberFormat,
DecimalFormat, and DecimalFormatSymbol classes
for the member countries of the European Monetary Union changes to the
Euro for all instances created after 1/1/2002, 0:00 local time of the
respective countries. Applications can use new API on these classes and
the new java.util.Currency class to specify the currency used. See
Request-for-Enhancements 4311107
and 4290801.
- A new method, "createInputMethodJFrame", has been
added to
the java.awt.im.spi.InputMethodContext interface to provide
Java
input methods with Swing based input method windows. Adding a new
method to an existing interface usually breaks the upward binary
compatibility,
but as the java.awt.im.spi.InputMethodContext interface is
implemented
only by the JRE, there is no compatibility problem for existing Java
applications.
When writing new Java input methods based on the J2SDK
1.4.0, input method implementors are encouraged to use the reflection
mechanism
to call this method since it is not available in prior releases.
Accessibility
Method AccessibleJComboBox.getAccessibleSelection(int)
works incorrectly in this release. It always returns null.
This problem is being tracked as bug 4401715,
and it will be fixed in the final release of the J2SE 1.4.0 platform.
CORBA, Java IDL, and Java RMI-IIOP
Limitations for Java IDL and Java RMI-IIOP - For
information
on limitations regarding the use of Java IDL and Java RMI-IIOP, please
read the Limitations for Java IDL and Java RMI-IIOP document located in
the documentation bundle.
Virtual Machines
The following notes pertain to the virtual machines in
J2SDK 1.4.0.
- On Microsoft Windows platforms, the Java 2 SDK includes both
the Java HotSpot Server VM and Java HotSpot Client VM. (See Java Virtual Machines for more
information on these VMs.) However, the Java 2 Runtime Environment for
Microsoft Windows platforms includes only the Java HotSpot Client VM.
Those wishing to use the Java HotSpot Server VM with the Java 2 Runtime
Environment may copy the SDK's jre\bin\server folder to a bin\server
directory in the Java Runtime Environment. Software vendors may
redistribute the Java HotSpot Server VM with their redistributions of
the Java Runtime Environment.
- A bug in the T1 library of the Solaris
operating environment causes the calling thread to hang when a call is
made to libthread "T1" thr_suspend. This bug can affect applications
running on the Java HotSpot VM in the Java 2 SDK. It is known to affect
the ATG Dynamo application server and the Tomcat implementation of Java Servlet
and JavaServer Pages technologies. This problem is being tracked in bug
4511519.
A possible workaround to launch applications with the -XX:-UseLWPSynchronization
command-line flag. However, this workaround has not been extensively
tested. On Solaris 8, use new the new T2 libthread as a workaround.
Under Solaris 8 set LD_LIBRARY_PATH=/usr/lib/lwp. Under
Solaris 9
this workaround is not neccessary because new libthread is the default.
- Beginning with J2SDK 1.4.0, the Classic Virtual Machine
is no longer shipped as part of the Java 2 SDK. (On Solaris
platforms, the Classic VM was removed in J2SDK 1.3.0.) If
you have been running your applications on the Classic
VM by using the -classic command-line option, you will
need to use either the Java HotSpot Client VM (invoked by default or by
using the -client option) or Java HotSpot
Server VM (invoked with the -server option). Attempting
to launch an application with the -classic option will
result in this message: Error: Classic VM no longer
supported.
- The J2SE 1.4.0 platform accepts class file versions in the
range 45.3 to 48.0.
New I/O (NIO) APIs
These notable NIO bugs exists in this release:
- Asynchronous closing and interruption do not work on Linux (bug
4460583).
- Interruption of file-locking operations not completely
implemented (bug 4460065).
- Large files broken on Linux (both java.io and java.nio)
(bug 4430625).
- Key-cancellation mechanism has race conditions (bug 4458268).
- Selector only supports 63 channels on the Microsoft Windows
operating system (bug 4503092).
For information about NIO, see the main and supplemental NIO
documentation.
The following problems pertain to the HotSwap
functionality of the Java Platform Debugger Architecture technology.
Java Web Start
The following notes pertain to Java Web Start 1.0.1_02,
which is included in J2SE 1.4.0.
- The Java Web Start security warning dialog box can cause Java
Web Start and the application to hang. This problem is due to a bug in
the implementation of event dispatching notification. This problem is
being tracked in bug report 4486581
(currently not on the Bug Parade web site).
- When Java Web Start 1.0.1_02 is used to open an unsigned
application, the message "Java Web Start Window" will appear in an
inset in the application's window. On Microsoft Windows platforms, the
message will be at the bottom of the application window. On the Solaris
operating environment and on Linux, the message will be near the top of
the application window, just below the window's title bar.
- In Java Web Start 1.0.1_02, the Java Network Launching Protocol
(JNLP) will not allow use of any settings of the form <property
name="NAME" value="VALUE"/> unless the "NAME" begins with "jnlp."
or "javaws."
Java Media Framework Bug Affecting Java Sound
Bug 4387291
in Java Media Framework
(JMF) 2.1 and earlier versions prevents the output of sound when using
Java 2 SDK 1.4.0. To avoid this problem, use JMF 2.1.1 (or later) in
which this bug has been fixed.
Java Plug-in Technology on Netscape 6 Browsers
The following notes pertain to Java Plug-in technology on
Netscape browsers.
Conformance on Solaris with OpenWindows
When running J2SE 1.4.0 on the Solaris operating
environment, behavior in conformance with the Java 2 Platform
specification is not guaranteed when using OpenWindows. In particular,
some APIs related to handling focus, such as the Component.requestFocus()
method, fail when using OpenWindows. This problem is due to a bug in
OpenWindows. See the bug description for 4505899
for more information.
This bug does not exist in the CDE window manager.
Platform Time Zone Detection on Microsoft Windows
If you select a time zone that doesn't observe daylight
saving time (e.g.,
Tokyo Standard Time) on installation of a Microsoft Windows operating
system, that
selection may turn off the global system setting "Automatically adjust
clock for daylight saving changes." Under this setting, the Java
runtime
detects the platform time zone in the GMT offset format (e.g.,
"GMT+09:00"),
not as a time zone ID (e.g., "Asia/Tokyo"). To fix this installation
problem,
take the following steps after the installation (unless you intend to
turn
off the setting):
-
Open Date/Time in Control Panel.
-
On the Time Zone tab, choose a time zone that observes daylight
saving time (e.g., "(GMT-08:00) Pacific Time (US & Canada);
Tijuana"),
select the "Automatically adjust clock for daylight saving changes"
check
box, and press the Apply button.
-
Choose your time zone back and press the OK button.
Applet Class Bug
Method java.applet.getDocumentBase() is supposed
to return the absolute URL of the
directory of the document containing the applet. Method java.applet.getCodeBase()
is supposed to return the URL of the applet itself. In the Java 2 SDK,
the behavior of these two methods is reversed. This problem is being
tracked as bug 4456393.
When installing the J2SE 1.4 platform for the
Solaris Operating Environment, be sure that you have the proper set of
patches installed on your system.
To obtain patches, see the
SunSolve
support website. You will find a patch cluster
for each Solaris operating environment platform. Each patch cluster
applies to all supported versions of the Java 2 Standard Edition (J2SE)
on the given platform.
Uninstall Bug on Solaris Operating Environment
A bug in the uninstall scripts for packages SUNWj3rt and
SUNWj3dev prevents those packages from being removed during a Disk
Space Reallocation (DSR) upgrade. In order to do a DSR upgrade, these
packages first must be manually removed using the pkgrm
command. See bug report 4635483
for more information.
Linux Notes
The following notes apply to use of this release on Linux
platforms.
- The following problems can occur intermittently on
multi-processor systems. No workaround exists for these problems; the
Linux system must be upgraded to eliminate them.
- A glibc 2.2 bug in versions 2.2.4 and earlier can cause the
virtual machine to hang on exit when there is only one remaining active
thread. This problem can affect Linux platforms such as Red Hat 7.0,
7.1, and 7.2 that have glibc versions 2.2 to 2.2.4. The problem is
fixed in glibc 2.2.5. See bug report 4656697.
- The Linux 2.4 SMP kernel sometimes issues duplicate PIDs,
which can lead to anything from network errors to crashes. This problem
is fixed in kernel 2.4.18. See bug report 4650839.
- Behavior in comformance with the API specification is not
guaranteed while running as superuser on any version of Linux whose
kernel was compiled with the CONFIG_IP_TRANSPARENT_PROXY
option. The default kernel shipped with the Red Hat 6.2 distribution is
compiled with this option. To avoid incompatibilities associated with
this problem, either do not use the Java platform while superuser or
else upgrade to a Linux operating system whose kernel was not compiled
with the CONFIG_IP_TRANSPARENT_PROXY option. Red Hat 7.1
ships with the version 2.4 kernel which does not have this problem.
- Because Red Hat 7.* on Japanese does not have a TrueType font
for
JIS X 0201 by default, the Japanese font properties file, font.properties.ja,
does not include any definition for JIS X 0201. The workaround is to
install a TrueType JIS X 0201 font and modify the font.properties.ja
file accordingly.
The Active X Bridge has been removed in J2SE 1.4.0.
Forte for Java and NetBeans
Forte for Java 3.0 and NetBeans 3.2.1 will work in
conjunction with J2SE 1.4.0. However, Forte for Java 2.0 and NetBeans
3.2 do not work with J2SE 1.4.0.
Tools and Utilities
The following notes pertain to the tools and utilities in this release.
Jar File Changes
File rt.jar no longer contains directory entries
such as java/ and java/io/. It contains only
entries for actual class files, such as java/io/InputStream.class.
Likewise, file charsets.jar no longer contains directory
entries.
Notes on Japanese Locale
Because Red Hat 7.* on Japanese does not have a TrueType
font for
JIS X 0201 by default, the Japanese font properties file, font.properties.ja,
does not include any definition for JIS X 0201. The workaround is to
install a TrueType JIS X 0201 font and modify the font.properties.ja
file accordingly.
Serialization
Instances of java.lang.Throwable and subclasses
(including all exceptions) serialized by Java 2 SDK 1.4 cannot be
deserialized by the Microsoft Windows JDK 1.1 implementation used by
Internet Explorer browsers. Deserialization of such objects results in
a ClassNotFoundException being thrown. This issue is
described in bug report 4634165.
|