This document contains information regarding all of the API changes related to CORBA functionality between JDK 1.3 and 5.0. The changes have been made to make the APIs for the CORBA technology shipped in the JDK 5.0 compliant to the CORBA 2.3 mapping as specified by the following OMG documents:
To comply with the IDL to Java mapping specified by the CORBA Version 2.3 specification, the following org.omg.COSNaming classes have been regenerated from the idlj compiler shipped with the JDK. This change (CCC 4284015) consists of the following API changes. Compatibility impact: None.
To conform with CORBA V (2.3) All Helpers Section 1.5.2 Spec ptc/00-01-08.pdf, all Helpers are now abstract public classes. Below is the list of all Helper classes under org.omg.CosNaming that have been changed to abstract public classes.
To conform with Section 1.7 OMG Spec ptc/00-01-08.pdf, Mapping for Enum, the mapping for the following Enum constructors is changed to protected.
CLASS | BEFORE | NOW |
---|---|---|
BindingType.java | private BindingType( int ) | protected BindingType( int ) |
NotFoundReason.java | private NotFoundReason( int ) | protected NotFoundReason( int ) |
To conform with CORBA 2.3 spec (ptc/00-01-08.pdf), Deletion of constructors in Stub classes, the following constructors have been deleted.
CLASS | BEFORE | NOW |
---|---|---|
_BindingIteratorStub.java | public _BindingIteratorStub(org.omg.CORBA.portable.Delegate d) | The constructor is deleted. |
_NamingContextStub.java | public _NamingContextStub(org.omg.CORBA.portable.Delegate d) | The constructor is deleted. |
To conform with CORBA 2.3 spec (ptc/00-01-08.pdf), the following exceptions have been changed.
CLASS | BEFORE | NOW |
---|---|---|
AlreadyBound.java | public final class AlreadyBound extends org.omg.CORBA.UserException implements org.omg.CORBA.portable.IDLEntity | public final class AlreadyBound extends org.omg.CORBA.UserException |
AlreadyBound.java | Only default constructor | Add new constructor public AlreadyBound (String reason) |
CannotProceed.java | public final class CannotProceed extends org.omg.CORBA.UserException implements org.omg.CORBA.portable.IDLEntity | public final class CannotProceed extends org.omg.CORBA.UserException |
CannotProceed.java | Only default constructor | Add new constructor public CannotProceed (String reason) |
InvalidName.java | public final class InvalidName extends org.omg.CORBA.UserException implements org.omg.CORBA.portable.IDLEntity | public final class InvalidName extends org.omg.CORBA.UserException |
InvalidName.java | Only default constructor | Add new constructor public InvalidName (String reason) |
NotEmpty.java | public final class NotEmpty extends org.omg.CORBA.UserException implements org.omg.CORBA.portable.IDLEntity | public final class NotEmpty extends org.omg.CORBA.UserException |
NotEmpty.java | Only default constructor | Add new constructor public NotEmpty (String reason) |
NotFound.java | public final class NotFound extends org.omg.CORBA.UserException implements org.omg.CORBA.portable.IDLEntity | public final class NotFound extends org.omg.CORBA.UserException |
NotFound.java | Only default constructor | Add new constructor public NotFound (String, org.omg.CosNaming.NamingContextPackage.NotFoundReason, org.omg.CosNaming.NameComponent[]) |
To conform with the CORBA 2.3 specification, the following classes have been added.
To conform with the CORBA 2.3 specification, the following classes are deprecated.
private static String _id =
"IDL:omg.org/CORBA/IDLType:2.3";
to
private static String _id =
"IDL:omg.org/CORBA/IDLType:1.0";
Compatibility impact: Yes. This change might affect interoperability with existing implementations. Restart the application and the IR if you get a COMM_FAILURE exception (or something similar). (CCC 4372718)
Compatibility impact: Yes, existing programs that use the compiler may need to add the -oldImplBase flag to their idlj invocation to maintain compatibility. (CCC 4407835)
The J2SE 5.0 version of Calendar writes a ZoneInfo object in its writeObject method. Similarly, it calls readObject to read this. Based on Java Object Serialization, it expects that if it's talking to an older version, the object won't be there, so the stream will throw an EOFException and keep the stream position intact.