Java Community ProcessSM Maintenance Review
for J2SETM 1.4 Beta 3

Introduction

This site provides details of specification changes being made in version 1.4 ("Merlin") of the JavaTM 2 Platform, Standard Edition (J2SETM). The descriptions on this site correspond to the platform changes that were made since the Beta 2 release of J2SE 1.4 and which are present in the Beta 3 release of J2SE 1.4. Descriptions of any post-Beta 3 specification changes will be provided in the future for separate review.

Merlin contains a variety of new features, of varying scale. Major features have been addressed by separate component JSRs (there are thirteen component JSRs in Merlin), but smaller features (such as, for example, new GUI widgets) are being addressed under the JCP maintenance rules.

The major new features of the Merlin release are described in JSR-059 "Merlin Release Contents". However, as that document states:

"This specification will not itself define any new APIs, rather it will reference APIs defined in other JCP Specifications or through the JCP maintenance process."
So, as with the component JSRs, the individual non-JSR API changes are being reviewed separately in the JCP process, in this case through a JCP maintenance review. Similarly to the review process for the Merlin component JSRs, any feature that fails its maintenance review will be dropped from Merlin and removed from the JSR-059 feature list.

Feedback

Please use the following address to provide review feedback on the platform changes described here.
merlin-jsr@eng.sun.com

Change Descriptions

Changes and enhancements to the Java 2 Platform since J2SE 1.4 Beta 2 that are included in J2SE 1.4 Beta 3 are summarized by functional area at the links below. The description of each change includes links to the affected parts of the API specification as well as to any bug reports that are relevant to the change.

AWT/Java 2DTM Technology
Endorsed Standards Override Mechanism
CORBA
Reflection
Security
Swing
Java Native Interface
Regular Expressions
Internationalization
Networking
Javadoc Tool

Also available are difference files that highlight all changes in the Javadoc API specifications between J2SE 1.4 Beta 2 and J2SE 1.4 Beta 3. See

Specification Difference Files

AWT/Java 2DTM Technology

The following applies to two new methods introduced in 1.4:

This API change updates the above specifications to state that these methods have no effect if the mapping already exists. The implementation has also been updated accordingly.

Additionally, related methods of SystemFlavorMap previously had their behavior undocumented for the following special cases:

This API change specifies the behavior in these cases. It consists of the following:

  1. Updated the specification for java.awt.datatransfer.SystemFlavorMap.addUnencodedNativeForFlavor(DataFlavor flav, String nat)
  2. Updated the specification for java.awt.datatransfer.SystemFlavorMap.addFlavorForUnencodedNative(String nat, DataFlavor flav)
  3. Updated the specification for java.awt.datatransfer.SystemFlavorMap.setNativesForFlavor(DataFlavor flav, String[] natives)
  4. Updated the specification for java.awt.datatransfer.SystemFlavorMap.setFlavorsForNative(String nat, DataFlavor[] flavors)

The bug report associated with this change is 4493189.

  • This change tightens the semantics for all Rasters to explicitly throw RasterFormatException when width or height are negative or zero and when computing a supposedly valid x or y coordinate in the Raster would cause integer overflow. The change is implemented by changing/adding a small number of lines of code, but includes javadoc changes to a large number of methods and constructors that indirectly execute the changed code.

    Code changes:

    java.awt.image.Raster

    java.awt.image.WritableRaster

    Equivalent javadoc changes (no code changes) have been made to the following constructors/methods which call the above constructors/ methods:

    Raster.java constructors

    Raster.java methods

    WritableRaster.java constructors

    WritableRaster.java methods

    The bug report that corresponds with this change is 4491919.

  • This addition introduces the ability to support full-screen exclusive mode and its relevant issues, such as display mode control and complex video buffering.

    API Change:

    I. Enabling Full Screen

    II. Display Mode Control III. Video Buffer Control IV. Capabilities and VolatileImage

    The bug report that corresponds with this change is 4189326.

    Endorsed Standards Override Mechanism

    The Java 2 Platform includes a number of APIs that are governed by third-party endorsed standards. Examples are of such APIs are javax.rmi.CORBA.*, org.omg.*, and org.w3c.dom. Often software developers and vendors would like to use their own implementation of these APIs, or use a version of the external standard other than the version that is implemented in J2SE. To address this need, J2SE 1.4 supports the Endorsed Standards Override Mechansim, which makes use of new system property, java.endorsed.dirs.

    The bug report associated with this addition is 4394071.

    CORBA

    To comply with the CORBA 2.3.1 specification, this API change updates the following methods of org.omg.CORBA.Any

    from:

    • abstract public void insert_Object( org.omg.CORBA.Object obj ) throws BAD_PARAM
    • abstract public void insert_Object( org.omg.CORBA.Object obj, org.omg.CORBA.TypeCode t ) throws org.omg.CORBA.BAD_OPERATION

    to:

    The bug report that corresponds with this change is 4504690.

    Reflection

    The previous implementation of reflect.Modifier.toString was underspecified, contained inconvenient choices, and contained a bug with respect to the the implied specification.

    This API change addresses these problems as follows:

    • properly documents the total modifier order being used in Modifer.toString
    • fixes code to output modifiers in that order
    • clarifies origin of bit patterns for constants

    See the updated specifications for java.lang.reflect.Modifier

    The bug report that corresponds to this change is 4394937.

    Security

    Swing

  • Java Native Interface

    New Invocation Interface routine AttachCurrentThreadAsDaemon allows native code to attach a daemon thread to the Java virtual machine (VM); this is useful when the VM should not wait for this thread to exit upon shutdown. For more information on this new routine, see JNI Enhancements.

    This change was made as part of bug 4496330.

    Regular Expressions

    One of the last remaining differences between Perl's syntax for regular expressions and that of the Java 2 Platform's support for regular expressions was that the Java syntax uses {xxx} POSIX character classes and Unicode blocks and categories. The Java 2 Platform has now adopted the Perl syntax, \p{xxx} and \P{xxx}, and supports all the POSIX categories and language blocks that Perl does.

    The bug report that corresponds to this change is 4495089.

    Internationalization

    The following changes pertain to internationalization functionality in J2SE 1.4 Beta 3.

    Networking

    This change was made to address bug 4492314.

    Javadoc Tool

    The following changes to the Javadoc tool in J2SE 1.4 Beta 3.

    Copyright © 2001 Sun Microsystems, Inc. All Rights Reserved.