Java to IDL Language Mapping Avatar
  1. OMG Specification

Java to IDL Language Mapping — Closed Issues

  • Acronym: JAV2I
  • Issues Count: 67
  • Description: Issues resolved by a task force and approved by Board
Open Closed All
Issues resolved by a task force and approved by Board

Issues Summary

Key Issue Reported Fixed Disposition Status
JAV2I12-101 PortableRemoteObject toStub should throw NoSuchObject Exception JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-100 Mapping of Java names that are IDL keywords JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-63 Specifying code downloading JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-62 Eliminating server wait code JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-68 RMI/ORB marshalling interface JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-67 Mapping of Object, Serializable and Externalizable JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-66 Custom marshalling wire format JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-65 The mapping of java.lang.Class to IDL is not specified JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-64 Mapping of RuntimeException JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-61 Mapping of Java arrays JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-60 Mapping of java.rmi remoteException superclasses JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-59 Mapping of non-public types JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-58 Need overloaded write_Value method on OutputStream JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-57 Value methods not mapped in spec examples JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-56 Need to #include orb.id JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-55 JTS exceptions JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-69 javax.rmi package use JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-15 Tie.deactivate() exception handling JAV2I 1.0b1 JAV2I 1.1 Resolved closed
JAV2I12-14 Stream format problem for custom marshalled RMI types JAV2I 1.0b1 JAV2I 1.2 Resolved closed
JAV2I13-12 Boolean attributes JAV2I 1.0b1 JAV2I 1.3 Resolved closed
JAV2I12-13 Name mangling scheme broken. JAV2I 1.0b1 JAV2I 1.1 Resolved closed
JAV2I13-11 PortableRemoteObject.narrow(null) JAV2I 1.0b1 JAV2I 1.3 Resolved closed
JAV2I13-10 Mapping of Java constructors to init is broken JAV2I 1.0b1 JAV2I 1.3 Resolved closed
JAV2I13-14 Container/member name clashes JAV2I 1.0b1 JAV2I 1.3 Resolved closed
JAV2I13-13 Definition of serialVersionUID field JAV2I 1.0b1 JAV2I 1.3 Resolved closed
JAV2I14-11 Treatment of classes with writeReplace/readResolve methods JAV2I 1.0b1 JAV2I 1.4 Resolved closed
JAV2I12-12 mapping from java.rmi Remote to CORBA::Object JAV2I 1.0b1 JAV2I 1.1 Resolved closed
JAV2I12-54 Local stubs proposal JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-53 read_AbstractObject and write_AbstractObject JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-52 Java to IDL identifier mapping JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-51 Should Portability APIs throw SystemException? JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-50 Stub methods for hashCode, equals and toString JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-43 The generated IDL in A2 needs to be changed JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-42 Clarify rules for mapping server-side errors and exceptions JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-39 Section 5.7.4 : mapped IDL issue JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-38 Narrow signature does not allow use for abstract interfaces JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-47 Should exportObject throw exceptions? JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-46 Rules in section 7.4.4 for toStub IIOP/JRMP search not correct JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-49 Omission in section 5.4.5 JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-48 Abstract Interfaces issue JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-45 Do we need to protect non-generated IDL files against multiple inclusion? JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-44 mangling rule for name clashes in IDL needs to be defined JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-37 Lexigraphic sort for field names is before mangling JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-36 Need to emit ID pragmas after declarations JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-41 Does toStub return most derived stub? JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-40 Can toStub take a stub? JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-24 Mapping of CORBA any and TypeCode JAV2I 1.0b1 JAV2I 1.1 Resolved closed
JAV2I12-23 Package for PortableRemoteObjectDelegate JAV2I 1.0b1 JAV2I 1.1 Resolved closed
JAV2I12-22 Descriptions of readAny and writeAny not precise enough JAV2I 1.0b1 JAV2I 1.1 Resolved closed
JAV2I12-21 ValueHandler Interface JAV2I 1.0b1 JAV2I 1.1 Resolved closed
JAV2I12-20 Java reverse mapping local case cannot properly support Portable Intercepto JAV2I 1.0b1 JAV2I 1.2 Resolved closed
JAV2I12-19 Exception mapping needs fixing JAV2I 1.0b1 JAV2I 1.1 Resolved closed
JAV2I12-18 Java to IDL mapping contradictive to CORBA/IIOP 2.3.1 JAV2I 1.0b1 JAV2I 1.2 Resolved closed
JAV2I12-17 loader.loadClass() or Class.forName()? JAV2I 1.0b1 JAV2I 1.1 Resolved closed
JAV2I12-16 No factory for javax.rmi.ClassDesc JAV2I 1.0b1 JAV2I 1.1 Resolved closed
JAV2I12-35 Mapping for nested sequences --- fix example JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-34 Unicode example needs fixing JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-33 SerializationInputStream and SerializationOutputStream JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-26 Mapping of Java byte constants to IDL JAV2I 1.0b1 JAV2I 1.1 Resolved closed
JAV2I12-25 Mapping CORBA minor codes to Java JAV2I 1.0b1 JAV2I 1.1 Resolved closed
JAV2I12-30 Default Constructor for Stubs JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-29 Marshalling of Any, Context, Principal, and TypeCode JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-32 Obtaining a default ORB JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-31 How to make IDLEntity types serializable JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I12-27 Public method declarations in ResponseHandler interface JAV2I 1.0b1 JAV2I 1.0 Resolved closed
JAV2I13-15 Support for serialPersistentFields JAV2I 1.0b1 JAV2I 1.3 Resolved closed
JAV2I12-28 orb() method on InputStream JAV2I 1.0b1 JAV2I 1.0 Resolved closed

Issues Descriptions

PortableRemoteObject toStub should throw NoSuchObject Exception

  • Legacy Issue Number: 1610
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: PortableRemoteObject.toStub should throw NoSuchObjectException if object
    has not been exported.

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Sun, 8 Mar 2015 14:01 GMT

Mapping of Java names that are IDL keywords

  • Legacy Issue Number: 1641
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: The Java to IDL mapping spec says that a Java name that is an IDL
    keyword is mapped to a mangled name consisting of the IDL keyword
    followed by a trailing underscore. Now that the Objects By Value
    RTF has adopted escaped identifiers with keading underscores, we
    should revise this mapping to use escaped identifiers.
    I propose that section 5.2.2 of the Java to IDL mapping spec be
    changed to state that Java names that collide with IDL keywords
    are mapped to IDL by adding a leading underscore, so that typedef
    would be mapped to _typedef.

  • Reported: JAV2I 1.0b1 — Wed, 8 Jul 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Sat, 7 Mar 2015 02:44 GMT

Specifying code downloading

  • Key: JAV2I12-63
  • Legacy Issue Number: 2081
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: The spec should mandate codebase annotation when marshalling in Java,
    and should specify how the annotation is selected.

    The spec should mandate code downloading using the codebase annotation
    when demarshalling in Java, and should specify the classloader semantics.

  • Reported: JAV2I 1.0b1 — Wed, 14 Oct 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    Closed, accepted

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Eliminating server wait code

  • Key: JAV2I12-62
  • Legacy Issue Number: 1965
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: An RMI-JRMP server creates and exports server objects and then
    returns. A non-daemon thread created by the JRMP runtime keeps the
    server process alive until there are no more objects exported.
    For code portability, an RMI-IIOP server needs to work in a similar
    way. It is not acceptable to require a call to ORB.run() or the
    use of application "wait" code to keep the server process alive.

    I propose that the specification of PortableRemoteObject.exportObject
    be updated to say that the first call to this creates a non-daemon
    thread which keeps the JVM alive until all exported objects have
    been unexported by calls to PortableRemoteObject.unexportObject.

  • Reported: JAV2I 1.0b1 — Wed, 16 Sep 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

RMI/ORB marshalling interface

  • Key: JAV2I12-68
  • Legacy Issue Number: 2092
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: The ORB should be responsible for marshalling all value headers and
    other protocol specific data. The RMI runtime should only marshal
    the state of the object. In other words, we exepect the contract
    between the ORB and RMI to be the similar to that of the ORB and
    an IDL generated ValueHelper.

    • The APIs should allow all RMI types supported by the IDL-Java mapping
      to be marshalled completely and correctly.
    • The APIs should be flexible enough to allow for some change in either
      RMI/Serialization semantics or changes to OBV wire protocol.
  • Reported: JAV2I 1.0b1 — Fri, 16 Oct 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    Closed, accepted

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Mapping of Object, Serializable and Externalizable

  • Key: JAV2I12-67
  • Legacy Issue Number: 2090
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: The proposal here is to map Object, Serializable and Externalizable
    to distinct entities, rather than just to an any.

    These entities are
    module java {
    module lang

    { typedef any _Object; }

    ;
    module io

    { typedef any Serializable; typedef any Externalizable; }

    ;
    };

    and so
    java.lang.Object will map to ::java::lang::_Object,
    java.io.Serializable will map to ::java::io::Serializable, and
    java.io.Externalizable will map to ::java::io.Externalizable

  • Reported: JAV2I 1.0b1 — Fri, 16 Oct 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Custom marshalling wire format

  • Key: JAV2I12-66
  • Legacy Issue Number: 2089
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: The full wire format produced by ObjectOutputStream really needs
    to be specified. E.g., I would assume that anything written with
    writeObject gets marshalled as an Any. In normal Java
    serialization, consecutive primitive writes (writeByte, writeInt,
    etc.) are aggregated into chunks with size lengths, and tagged
    to distinguish it from other data. In this way, ObjectInputStream
    can ensure that major stream corruption never occurs: it can
    make sure that a primitive read never eats into object data,
    and vice versa. Is a similar format used for IIOP?

  • Reported: JAV2I 1.0b1 — Fri, 16 Oct 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    Closed, accepted

  • Updated: Fri, 6 Mar 2015 20:58 GMT

The mapping of java.lang.Class to IDL is not specified

  • Key: JAV2I12-65
  • Legacy Issue Number: 2088
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: The mapping of java.lang.Class to IDL is not specified. An
    interesting subquestion is whether it"s possible to transmit a
    Class that has not previously been mapped to IDL.

  • Reported: JAV2I 1.0b1 — Fri, 16 Oct 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Mapping of RuntimeException

  • Key: JAV2I12-64
  • Legacy Issue Number: 2082
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: If a Java method explictly declares that it throws RuntimeException or
    some subclass, the current spec says that these should be retained in
    the mapping to IDL. I think this is wrong; they should be dropped
    when mapping to IDL. The reasoning is along the same lines as dropping
    subclasses of RemoteException.

  • Reported: JAV2I 1.0b1 — Wed, 14 Oct 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Mapping of Java arrays

  • Key: JAV2I12-61
  • Legacy Issue Number: 1960
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: Generated names in the ::org::omg::sequences module can clash.
    For example, a Java array of type foo[][] and a Java array of type
    seq_foo[] both map to ::org::omg::sequences::seq_seq_foo.

    I propose that instead of using repeated "seq_" prefixes for the
    array dimensions, a single prefix "seq<n>_", where <n> is the
    number of dimensions, should be used. This ensures no clashes.
    In the example above, these Java types would map to seq2_foo and
    seq1_seq_foo.

  • Reported: JAV2I 1.0b1 — Wed, 16 Sep 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Mapping of java.rmi remoteException superclasses

  • Key: JAV2I12-60
  • Legacy Issue Number: 1958
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: There is an issue with the currently specified mapping for Java
    remote and abstract interfaces containing methods that throw
    superclasses of java.rmi.RemoteException but do not throw
    java.rmi.RemoteException. In Java 1.1, these are not recognized
    as RMI remote interfaces. In Java 1.2, these are recognized as
    RMI remote interfaces.

    I propose that throwing these superclass exceptions be treated by
    the Java to IDL mapping as semantically equivalent to throwing
    both RemoteException and the superclass exception. This means
    that the section 4.3 rules for RMI/IDL remote interfaces would
    be changed to include this case (in point 3), with similar changes
    elsewhere in the spec.

  • Reported: JAV2I 1.0b1 — Tue, 15 Sep 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Mapping of non-public types

  • Key: JAV2I12-59
  • Legacy Issue Number: 1957
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: The spec needs to say what happens if a Java public RMI/IDL
    value class has data members whose types are not public.

    Options: Either a) restrict all uses of non-public types, or
    b) map all non-public types to public in IDL.

    Inprise have proposed that we adopt option b). Comments?

  • Reported: JAV2I 1.0b1 — Tue, 15 Sep 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Need overloaded write_Value method on OutputStream

  • Key: JAV2I12-58
  • Legacy Issue Number: 1931
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: Suppose we are passing an array of declared type Animal[] and
    runtime type Wombat[] but whose elements are all of runtime type
    Wombat, where Wombat is a subtype of Animal. This array is mapped
    to a boxed valuetype in the org.omg.sequences module. In the
    RMI-IIOP stub, we need to write this array by making a write_Value
    call (so that sharing can be handled correctly). The repository ID
    that we need to write is for a type seq_Animal, based on a static
    mapping from the declared type of the array (see section 5.6 of the
    Java-to-IDL spec). However, if the stub used the normal write_Value
    call that takes a single argument of the object to be written, the
    runtime will not be able to put the correct repository ID on the
    wire because it only knows about the runtime type of the array, not
    the declared type. For the IDL case, this is taken care of by
    having the stub generate the form of write_Value that takes a
    ValueHelper object for the declared type, but in RMI-IIOP there are
    no ValueHelper objects.

  • Reported: JAV2I 1.0b1 — Thu, 3 Sep 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    closed, accepted

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Value methods not mapped in spec examples

  • Key: JAV2I12-57
  • Legacy Issue Number: 1894
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: The Java to IDL mapping spec specifies rules for how value
    methods are mapped to IDL. However, none of the examples
    shows any of these methods actually being mapped. Although
    this is legal according to the spec, it has led to some
    confusion as to which methods would normally be expected to
    be mapped, such as the writeObject method in section 5.5.9.

  • Reported: JAV2I 1.0b1 — Thu, 27 Aug 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Need to #include orb.id

  • Key: JAV2I12-56
  • Legacy Issue Number: 1891
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: The example in section A.2 of the Java-to-IDL spec uses the
    type ::CORBA::WStringValue but does not define this type.
    By CORBA convention, the definition will be in the file
    orb.idl, which should be #included in the example IDL code.
    I propose that this example be changed to #include orb.idl.
    l

  • Reported: JAV2I 1.0b1 — Wed, 26 Aug 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    :CORBA::WStringValue but does not define this type.

  • Updated: Fri, 6 Mar 2015 20:58 GMT

JTS exceptions

  • Key: JAV2I12-55
  • Legacy Issue Number: 1780
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: The Java-to-IDL spec says in section 6.6.1 that certain CORBA system
    exceptions are mapped to the Java exceptions
    javax.jts.TransactionRequiredException
    javax.jts.TransactionRolledBackException
    javax.jts.InvalidTransactionException

    The names above are obsolete (since Sun revised the JTS/JTA specs),
    so the Java-to-IDL spec needs to be changed. Possible mappings are:
    1. javax.transaction.<the_same_names_as_above>
    (as listed in the JTA spec)
    2. java.rmi.RemoteException
    3. No mapping (leave them as CORBA system exceptions)

    Option 1 implies a dependency of the RMI-IIOP runtime on these
    JTA exception classes.

  • Reported: JAV2I 1.0b1 — Thu, 6 Aug 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

javax.rmi package use

  • Key: JAV2I12-69
  • Legacy Issue Number: 2225
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: It has concerned me for a while the use of the javax.rmi package in the Java
    to IDL mapping. I think that PortableRemoteObject and other classes should be
    placed in a subpackage. We may in the future put subpackages in javax.rmi and
    would like it organized much better than it is currently. The
    PortableRemoteObject class should be put in a subpackage "portable" or
    something else. I"d like to raise this as an issue to discuss at the RTF.
    There are still other issues that are being ironed out, and I think that this
    one can be addressed along with the others.

  • Reported: JAV2I 1.0b1 — Thu, 19 Nov 1998 05:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    Closed, no change

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Tie.deactivate() exception handling

  • Key: JAV2I12-15
  • Legacy Issue Number: 3152
  • Status: closed  
  • Source: hursley.ibm.com ( Simon Nash)
  • Summary:

    The javax.rmi.CORBA.Tie.deactivate() method does not declare any exceptions.
    However, when using a POA servant, the following exceptions can be thrown by
    the RMI/IDL tie's implementation of deactivate():

    org.omg.PortableServer.POAPackage.ServantNotActive
    org.omg.PortableServer.POAPackage.WrongPolicy
    (by the servant_to_id() method)

    org.omg.PortableServer.POAPackage.ObjectNotActive
    org.omg.PortableServer.POAPackage.WrongPolicy
    (by the deactivate_object() method)

    How should these exceptions be handled by Tie.deactivate()? If they should
    be rethrown by Tie.deactivate(), what exception(s) should be used?

    (This issue was raised by Max Mortazavi of Sun.)

  • Reported: JAV2I 1.0b1 — Tue, 21 Dec 1999 05:00 GMT
  • Disposition: Resolved — JAV2I 1.1
  • Disposition Summary:

    See revised text below.

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Stream format problem for custom marshalled RMI types

  • Key: JAV2I12-14
  • Legacy Issue Number: 3151
  • Status: closed  
  • Source: hursley.ibm.com ( Simon Nash)
  • Summary:

    There is a problem in the stream format for custom marshalled RMI types.
    The Java serialization spec requires that when a class with a writeObject
    method calls defaultWriteObject and then writes optional data, the receiver
    must be able to skip the optional data if the readObject does not consume
    it or the class is not in the receiver's hierarchy. So if the sender's
    hierarchy consists of serializable classes Base and Derived, both of which
    call defaultWriteObject and then write optional data, there must be a way
    for the unmarshaller to first skip to the end of the Base data, then skip
    to the end of the Derived data. With the current stream format, this is
    not possible.

  • Reported: JAV2I 1.0b1 — Mon, 20 Dec 1999 05:00 GMT
  • Disposition: Resolved — JAV2I 1.2
  • Disposition Summary:

    see below

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Boolean attributes

  • Key: JAV2I13-12
  • Legacy Issue Number: 3118
  • Status: closed  
  • Source: Borland Software Corporation ( Vijaykumar Natarajan)
  • Summary:

    Thought I would raise this as a formal issue.

    The spec is ambiguous about mapping boolean accessors when in the following cases

    boolean isFoo ();
    void setFoo(boolean x);

    and

    boolean getBar();
    boolean isBar();
    void setBar(boolean x);

    According to the spec, both of the above get mapped to attributes. But, an attribute has only one getter and one setter.
    So, the question is what is isBar represented as on the wire? And how is the distinction made between isBar and getBar?

    Two ideas I can think of are
    1. Drop isBar from being recognized as a getter for attribute bar.
    2. Have isBar be represented on the wire as _get_bar. This has the effect of the two methods collapsing into
    one on the receiving context, which is probably OK because they should semantically be equivalent anyway.

  • Reported: JAV2I 1.0b1 — Wed, 15 Dec 1999 05:00 GMT
  • Disposition: Resolved — JAV2I 1.3
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Name mangling scheme broken.

  • Key: JAV2I12-13
  • Legacy Issue Number: 3117
  • Status: closed  
  • Source: Borland Software Corporation ( Vijaykumar Natarajan)
  • Summary:

    Say I have a class octet in the global scope and I have an interface

    interface foo extends java.rmi.Remote

    { void op(byte x); void op(octet y); }

    ;

    The operationsin IDL will now be

    op_octet (octet x) and op_octet(::_octet);

    which is incorrect.

  • Reported: JAV2I 1.0b1 — Wed, 15 Dec 1999 05:00 GMT
  • Disposition: Resolved — JAV2I 1.1
  • Disposition Summary:

    closed, no change

  • Updated: Fri, 6 Mar 2015 20:58 GMT

PortableRemoteObject.narrow(null)

  • Key: JAV2I13-11
  • Legacy Issue Number: 3093
  • Status: closed  
  • Source: hursley.ibm.com ( Simon Nash)
  • Summary:

    The spec does not define what happens when a null object reference is passed to
    PortableRemoteObject.narrow(). For consistency with xxxHelper.narrow(), I think
    it should return null.

  • Reported: JAV2I 1.0b1 — Tue, 7 Dec 1999 05:00 GMT
  • Disposition: Resolved — JAV2I 1.3
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Mapping of Java constructors to init is broken

  • Key: JAV2I13-10
  • Legacy Issue Number: 2565
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: The Java to IDL mapping specifies that Java constructors are
    mapped to IDL initializers. Now that core RTF issue 1981 has
    replaced IDL initializers by factory methods, this mapping is
    broken and inconsistent with the core chapters.

  • Reported: JAV2I 1.0b1 — Wed, 31 Mar 1999 05:00 GMT
  • Disposition: Resolved — JAV2I 1.3
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Container/member name clashes

  • Key: JAV2I13-14
  • Legacy Issue Number: 3200
  • Status: closed  
  • Source: hursley.ibm.com ( Simon Nash)
  • Summary:

    There is a commonly occurring name collision that is not covered by the
    current name mangling rules. This is demonstrated by the Java to IDL mapping
    of java.util.Date. The IDL generated gives a custom valuetype "Date" which
    contains an attribute "date", which is illegal in IDL. This problem is not
    unique to java.util.Date.

    More generally, this collision occurs whenever a Java interface or class
    being mapped to IDL contains a method or data member with the same name
    as the interface or class (using a case-insensitive comparison). For example,
    the following Java definitions cause this problem:

  • Reported: JAV2I 1.0b1 — Sun, 9 Jan 2000 05:00 GMT
  • Disposition: Resolved — JAV2I 1.3
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Definition of serialVersionUID field

  • Key: JAV2I13-13
  • Legacy Issue Number: 3160
  • Status: closed  
  • Source: hursley.ibm.com ( Simon Nash)
  • Summary:

    Does the serialVersionUID field need to be private, static, and final,
    or just static and final? The Java to IDL spec says private, static,
    and final, but as far as I can tell, regular Java serialization just
    uses static and final. This has been a source of confusion for a number
    of users.

  • Reported: JAV2I 1.0b1 — Wed, 22 Dec 1999 05:00 GMT
  • Disposition: Resolved — JAV2I 1.3
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Treatment of classes with writeReplace/readResolve methods

  • Key: JAV2I14-11
  • Legacy Issue Number: 2552
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: We should consider whether a Java class that has a writeReplace or a
    readResolve method (with the appropriate signature for use by object
    serialization) should map to a custom valuetype in IDL instead of
    a normal valuetype. We should also think harder about the impact
    of writeReplace/readResolve semantics on non-Java ORBs: can non-Java
    implementations properly receive and send instances of such classes,
    maintaining all the proper sharing, without running into type checking
    problems, and without any additions to non-Java ORBs?

  • Reported: JAV2I 1.0b1 — Fri, 19 Mar 1999 05:00 GMT
  • Disposition: Resolved — JAV2I 1.4
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

mapping from java.rmi Remote to CORBA::Object

  • Key: JAV2I12-12
  • Legacy Issue Number: 2111
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: Are we trying to support sending JRMP stubs over IIOP? If so, then
    it would seem that the IDL mapping of java.rmi.Remote to CORBA::Object
    works against that; it would need to be changed to Any.

  • Reported: JAV2I 1.0b1 — Tue, 20 Oct 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.1
  • Disposition Summary:

    See revised text below.

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Local stubs proposal

  • Key: JAV2I12-54
  • Legacy Issue Number: 1736
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: There is currently no standard support for local RMI/IDL stubs.
    In contrast, the IDL/Java mapping specifies how support for local
    stubs is to be provided. The Java to IDL mapping should also
    specify standard APIs for local stubs which are compatible with
    the POA and the mechanisms used by IDL/Java local stubs.

  • Reported: JAV2I 1.0b1 — Mon, 27 Jul 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    closed, accepted

  • Updated: Fri, 6 Mar 2015 20:58 GMT

read_AbstractObject and write_AbstractObject

  • Key: JAV2I12-53
  • Legacy Issue Number: 1662
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: In section 7.1.2, there is a method called read_AbstractObject(clz).
    I propose that we change its name to read_Abstract to bring it
    into line with the read_Abstract() method introduced in section
    8.7.1 of the OBV spec. This is consistent with having methods
    called read_Object() and read_Object(clz).

    There"s also a typo in section 7.2.6. It says that
    Util.write_AbstractObject calls OutputStream.write_AbstractObject.
    This should say OutputStream.write_Abstract.

  • Reported: JAV2I 1.0b1 — Fri, 10 Jul 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Java to IDL identifier mapping

  • Key: JAV2I12-52
  • Legacy Issue Number: 1642
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: orbos/98-02-01 says:

    We have provided name manglings to work around [the limitations],
    but we recommend that OMG consider extending the definitions of
    IDL identifiers so that a wider range of unicode characters can
    be supported and so that case is significant in distinguishing
    identifiers.

    I would suggest to remove this recommendation because it is pragmatically
    unimplementable for implementation languages that do not support
    extended character sets. If the OMG were to take this step, it would
    effectively alienate CORBA from all such implementation languages, which
    I believe would be detrimental to the success of CORBA.

    Because overloaded methods are a popular feature in object-oriented
    programming languages we recommend that OMG considers extending
    IDL to allow overloaded methods.

    Again, I suggest to remove the recommendation because it is pragmatically
    unimplementable. Steve Vinoski recently posted an interesting article
    on this topic in comp.object.corba – I have attached a copy below.

  • Reported: JAV2I 1.0b1 — Wed, 8 Jul 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Should Portability APIs throw SystemException?

  • Key: JAV2I12-51
  • Legacy Issue Number: 1640
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: This item arises from the Java-to-IDL Mapping RFP, but is also of
    concern to the IDL-to-Java RTF because it affects the IDL-to-Java
    mapping.

    Three of the new portability APIs intorduced by the Java to IDL mapping
    are declared as throwing org.omg.CORBA.SystemException. These are
    the _invoke methods of ObjectImpl and Delegate and the _invoke method
    of InvokeHandler. I don"t think this exception hould be declared
    explicitly, since it is a subclass of java.lang.RuntimeException and so
    is always implictly throwable whether it is declared or not. Also,
    other portability APIs can throw this exception even though they do not
    declare it explicitly. This inconsistency makes it very difficult for
    the reader of the spec to determine which of the portability APIs can
    throw CORBA system exceptions, and is likely to cause confusion.

    I propose that org.omg.CORBA.SystemException be removed from the throws
    clause of the above-mentioned APIs.

  • Reported: JAV2I 1.0b1 — Wed, 8 Jul 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Stub methods for hashCode, equals and toString

  • Key: JAV2I12-50
  • Legacy Issue Number: 1621
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: RMI/JRMP stubs provide overridden implementations for the
    hashCode, equals, and toString methods of java.lang.Object.

    The stub hashCode method returns the same hash code for
    different stubs that refer to the same remote object.
    The stub equals method returns true when stubs that refer
    to the same remote object are compared. These methods allow
    remote objects to be held in Java collections.

    The stub toString method returns a string containing information
    about the remote object, not the local stub.

    RMI/IIOP stubs should provide equivalent methods. The easiest
    way to do this is to add implementations of these three methods
    to the javax.rmi.CORBA.Stub base class.

    I propose that the definition of javax.rmi.CORBA.Stub in
    section 7.2.5 be modified to add these methods.

  • Reported: JAV2I 1.0b1 — Tue, 30 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

The generated IDL in A2 needs to be changed

  • Key: JAV2I12-43
  • Legacy Issue Number: 1604
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: The generated IDL in A2 needs to be changed.

    In particular, forward declares for fred.Test2 and fred.Stuff must
    appear before #includes, before sequence defs and before the module
    definition. Their #includes must appear at the end. In fact, just follow
    the file layout rules described at the beginning of the appendix.

    If this is not done, there is a danger that circular references will
    lead to undeclared types when the IDL is compiled.

    Proposed resolution: fix example

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Clarify rules for mapping server-side errors and exceptions

  • Key: JAV2I12-42
  • Legacy Issue Number: 1603
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: 17. Need to clarify rules for mapping server-side errors and runtime
    exceptions back to client exceptions.

    Proposed resolution: use omg.omg.CORBA.UNKNOWN

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Section 5.7.4 : mapped IDL issue

  • Key: JAV2I12-39
  • Legacy Issue Number: 1600
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: In section 5.7.4 the mapped IDL for Thrower includes:
    FruitbatException getLastException();
    It should be
    readonly attribute ::omega::FruitbatException lastException;

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Narrow signature does not allow use for abstract interfaces

  • Key: JAV2I12-38
  • Legacy Issue Number: 1599
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: 12. Narrow signature does not allow use for abstract interfaces

    Proposed resolution: return java.lang.Object

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Should exportObject throw exceptions?

  • Key: JAV2I12-47
  • Legacy Issue Number: 1609
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: 25. Should exportObject throw exceptions?

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Rules in section 7.4.4 for toStub IIOP/JRMP search not correct

  • Key: JAV2I12-46
  • Legacy Issue Number: 1608
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: Rules in section 7.4.4 for toStub IIOP/JRMP search aren"t quite correct.
    If the object has been exported as IIOP (i.e., an IIOP Tie exists),
    no attempt will be made to create a JRMP stub even if there is no IIOP
    stub class.

    Proposed resolution: clarify spec

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Omission in section 5.4.5

  • Key: JAV2I12-49
  • Legacy Issue Number: 1620
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: The text in section 5.4.5 has no mention of String constants.
    This seems to be an accidental omission. I propose replacing
    the text in this section by the text in section 5.5.5, with
    "value type" changed to "interface".

  • Reported: JAV2I 1.0b1 — Tue, 30 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Abstract Interfaces issue

  • Key: JAV2I12-48
  • Legacy Issue Number: 1619
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: The current Java to IDL mapping spec does not fully address support
    for abstract interfaces. There is support for these in the
    Portability Interfaces chapter, but not in the RMI/IDL Subset or
    IDL Mapping chapters.

  • Reported: JAV2I 1.0b1 — Tue, 30 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Do we need to protect non-generated IDL files against multiple inclusion?

  • Key: JAV2I12-45
  • Legacy Issue Number: 1607
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: Do we need to protect non-generated IDL files against multiple
    inclusion?

    Proposed resolution: no protection

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

mangling rule for name clashes in IDL needs to be defined

  • Key: JAV2I12-44
  • Legacy Issue Number: 1606
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: Need to define a mangling rule for name clashes in IDL between
    constant/method/attribute.

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Lexigraphic sort for field names is before mangling

  • Key: JAV2I12-37
  • Legacy Issue Number: 1598
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: Lexigraphic sort for field names is before mangling

    Proposed resolution: clarify section 5.5.6

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Need to emit ID pragmas after declarations

  • Key: JAV2I12-36
  • Legacy Issue Number: 1597
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: 10. Need to emit ID pragmas after declarations

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Does toStub return most derived stub?

  • Key: JAV2I12-41
  • Legacy Issue Number: 1602
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: 15. does toStub return most derived stub, or iterate looking for one?

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Can toStub take a stub?

  • Key: JAV2I12-40
  • Legacy Issue Number: 1601
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: Can toStub take a stub?

    Proposed resolution: yes, in which case it"s a no-op.

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Mapping of CORBA any and TypeCode

  • Key: JAV2I12-24
  • Legacy Issue Number: 3969
  • Status: closed  
  • Source: hursley.ibm.com ( Simon Nash)
  • Summary:

    The Java to IDL mapping does not specify how the Java classes produced
    by the forward mapping from the CORBA "any" and "TypeCode" types should
    be mapped back to IDL.

    Since org.omg.CORBA.Any and org.omg.CORBA.TypeCode both inherit from
    IDLEntity, section 1.3.9 implies that these types should be "boxed" in
    the same way as other IDLEntity types. This would imply the following
    mapping to IDL:

    module org {
    module omg {
    module boxedIDL {
    module CORBA

    { valuetype _Any any; #pragma ID Any “RMI:org.omg.CORBA.Any:xxxxxxxxxxxxxxxx:yyyyyyyyyyyyyyyy” }

    ;
    };
    };
    };

    module org {
    module omg {
    module boxedIDL {
    module CORBA

    { valuetype TypeCode ::CORBA::TypeCode; #pragma ID TypeCode “RMI:org.omg.CORBA.TypeCode:xxxxxxxxxxxxxxxx:yyyyyyyyyyyyyyyy” }

    ;
    };
    };
    };

    The above raises a number of questions:

    1. What is the correct IDL name for the boxed valuetype enclosing the Java "Any"
    type? Is it ::org::omg::boxedIDL::CORBA::_Any or ::org::omg::boxedIDL::_any?

    2. How should the hashcodes and SUIDs be computed in the above repid pragmas?
    For other boxed IDLEntity Java types, these are computed from the actual
    implementation classes. However, for these two types, the actual
    implementation classes are ORB-specific and it seems meaningless to send
    their hashcodes or SUIDs on the wire. We could either do what we do for
    object references and send zeros for the hashcode and SUID, or we could
    use IDL-style repids instead or RMI-style repids for these types.

    3. Is it better to make these types an exception to the general rule as defined
    in section 1.3.9? An alternative non-boxed mapping would be to simply map
    them to the IDL/PIDL types "any" and "::CORBA::TypeCode". This would have
    the drawback that RMI semantics of being able to pass nulls and maintaining
    referential integrity for shared references to "by value" Java objects would
    not apply to these Java types.

  • Reported: JAV2I 1.0b1 — Wed, 18 Oct 2000 04:00 GMT
  • Disposition: Resolved — JAV2I 1.1
  • Disposition Summary:

    See revised text below.

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Package for PortableRemoteObjectDelegate

  • Key: JAV2I12-23
  • Legacy Issue Number: 3858
  • Status: closed  
  • Source: hursley.ibm.com ( Simon Nash)
  • Summary:

    The Java to IDL mapping spec does not explictly specify the package for the
    PortableRemoteObjectDelegate interface.

    The correct fully-qualified name of this interface is
    javax.rmi.CORBA.PotableRemoteObjectDelegate. This is stated explictly in
    Harold Carr's final proposal for issue 2478, which contained the text:

    > The implementation delegate classes for PortableRemoteObject and Util must
    > implement the following new interfaces:
    >
    > javax.rmi.CORBA.PortableRemoteObjectDelegate (per-class delegation)
    > javax.rmi.CORBA.UtilDelegate (per-class delegation)

    and is also implied by the text that was voted on for issue 2478, which
    contained the following:

    > The implementation delegate classes for PortableRemoteObject and Util must
    > implement the following new interfaces for per-class delegation:
    >
    > package javax.rmi.CORBA;
    >
    > public interface UtilDelegate

    { > > .... > > }
    >
    > public interface PortableRemoteObjectDelegate { > > .... > > }

    The above code clearly makes both interfaces part of the javax.rmi.CORBA package.
    However, when these definitions were copied into the Java to IDL mapping spec,
    the interfaces UtilDelegate and PortableRemoteObject were placed in separate
    sections 1.5.3.2 and 1.5.3.3, and the package statement was copied to section
    1.5.3.2 but was unfortunately not copied to 1.5.3.3. This creates an ambiguity
    in the published spec document, since section 1.5.3.3 does not explicitly specify
    the package for PortableRemoteObjectDelegate.

    Proposed resolution:

    Add the line
    package javax.rmi.CORBA;
    to section 1.5.3.3.

  • Reported: JAV2I 1.0b1 — Tue, 5 Sep 2000 04:00 GMT
  • Disposition: Resolved — JAV2I 1.1
  • Disposition Summary:

    See revised text below

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Descriptions of readAny and writeAny not precise enough

  • Key: JAV2I12-22
  • Legacy Issue Number: 3857
  • Status: closed  
  • Source: hursley.ibm.com ( Simon Nash)
  • Summary:

    The descriptions of readAny and writeAny in section 1.5.1.4 of the Java to IDL
    mapping spec are not very precise and don't say how null values should be handled.
    These methods are currently described in section 1.5.1.4 as follows:

    > The writeAny method writes the Java object obj to the output stream out in the
    > form of a GIOP any. The readAny method reads a GIOP any from the input stream
    > in and unmarshals it as a Java object, which is returned.

    Proposed resolution:

    Replace the above paragraph in section 1.5.1.4 by the following:

    The writeAny method writes the Java object obj to the output stream out in the
    form of a GIOP any. The contents of the GIOP any are determined by applying
    the Java to IDL mapping rules to the actual runtime type of obj. If obj is null,
    then it is written as follows: the TypeCode is tk_value, the repository ID is
    "IDL:omg.org/CORBA/ValueBase:1.0", the name string is "", the ValueModifier is
    VM_NONE, the concrete base is tk_null, the member count is 0, and the any's value
    is a null valuetype (0x00000000).

    The readAny method reads a GIOP any from the input stream in and unmarshals it
    as a Java object, which is returned. The following TypeCodes are valid for
    the GIOP any: tk_value, tk_value_box, and tk_objref. If the TypeCode is anything
    other than these, a MARSHAL exception is thrown.

  • Reported: JAV2I 1.0b1 — Tue, 5 Sep 2000 04:00 GMT
  • Disposition: Resolved — JAV2I 1.1
  • Disposition Summary:

    See revised text below.

  • Updated: Fri, 6 Mar 2015 20:58 GMT

ValueHandler Interface

  • Key: JAV2I12-21
  • Legacy Issue Number: 3798
  • Status: closed  
  • Source: Oracle ( Anita Jindal)
  • Summary:

    In ptc/00-01-06.pdf, the ValueHandler Interface shows method
    implementations. According to Java conventions, the methods
    should not be implemented in interfaces. It is requested that
    this interface be updated to remove the method implementations.

  • Reported: JAV2I 1.0b1 — Thu, 31 Aug 2000 04:00 GMT
  • Disposition: Resolved — JAV2I 1.1
  • Disposition Summary:

    Remove method implementations from the definition of the ValueHandler interface.

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Java reverse mapping local case cannot properly support Portable Intercepto

  • Key: JAV2I12-20
  • Legacy Issue Number: 3754
  • Status: closed  
  • Source: Oracle ( Harold Carr)
  • Summary:

    The local mapping makes it impossible to determine which ending point
    to call.

    ptc/00-01-06 says:

    BEGIN_QUOTE

    1.5.2.2 Local Stubs

    The stub class may provide an optimized call path for local server
    implementation objects. For a method echo(int x) of a remote interface
    Aardvark, the optimized path does the following:

    1. Find out if the servant is local by calling Util.isLocal()
    2. If the servant is local, call
    this._servant_preinvoke("echo",Aardvark.class)
    3. If _servant_preinvoke returned a non-null ServantObject so, call
    ((Aardvark)so.servant).echo
    4. If _servant_preinvoke returned a non-null ServantObject so, call
    this._servant_postinvoke(so)
    5. If _servant_preinvoke returned null, repeat step 1. The call to
    Util.isLocal() will return false, causing the non-optimized
    path to be followed.
    ...

    The following is an example of a stub class that provides this
    optimized call path.

    // Java
    public class _Aardvark_Stub extends javax.rmi.CORBA.Stub
    implements Aardvark
    {
    public int echo(int x)
    throws java.rmi.RemoteException, Boomerang
    {
    if (!javax.rmi.CORBA.Util.isLocal(this))

    { ... }

    else {
    // local call path
    org.omg.CORBA.portable.ServantObject so =
    _servant_preinvoke("echo", Aardvark.class);
    if (so == null)
    return echo;
    try

    { return ((Aardvark)so.servant).echo(x); }

    catch (Throwable ex)

    { Throwable ex2 = (Throwable) javax.rmi.CORBA.Util.copyObject(ex, _orb()); if (ex2 instanceof Boomerang) throw (Boomerang)ex2; else throw javax.CORBA.Util.wrapException(ex2); }

    finally

    { _servant_postinvoke(so); }

    }
    }
    }

    END_QUOTE

    ClientRequestInterceptor::send_request would need to be invoked by the
    ORB inside _servant_preinvoke.

    ClientRequestInterceptor::receive_reply or receive_exception would
    need to be called inside _servant_postinvoke.

    (Note that receive_other would not happen since, if a POA were
    involved inside _servant_preinvoke and a servant manager raised
    ForwardRequest, this should cause _servant_preinvoke to return null
    resulting in a recursive call to the method. In this case the ORB
    would not call send_request in the first place, or, if it did, it
    would handle the call to the receive_other internally inside of
    _servant_preinvoke.)

    One is tempted to say that the ORB could remember if
    javax.rmi.CORBA.Util.copyObject was called on behalf of this request.
    In that case, when _servant_postinvoke is called it would know there
    was an exception (and would have it hands on the exception object -
    which needs to be available via Portable Interceptors).

    However, this does not work. The example does not show it, but if the
    method returns values those values are filtered through
    javax.rmi.CORBA.Util.copyObject before being returned to the client.
    Exception objects are legal return values. So there is no way to
    determine if copyObject was called to copy return values or exception
    objects resulting from an actually exception. Therefore this trick
    will not work.

    Bottom line: there is no reliable way to determine which Portable
    Interceptor ending point to call in the Java reverse mapping local
    case.

  • Reported: JAV2I 1.0b1 — Fri, 21 Jul 2000 04:00 GMT
  • Disposition: Resolved — JAV2I 1.2
  • Disposition Summary:

    see below

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Exception mapping needs fixing

  • Key: JAV2I12-19
  • Legacy Issue Number: 3670
  • Status: closed  
  • Source: Borland Software Corporation ( Vijaykumar Natarajan)
  • Summary:

    When I have Java exceptions called

    foo
    fooException
    fooError

    they all get mapped to the exception fooEx causing collisions.

    I am not sure what the fix should be so I'll dump my thoughts here...

    The correct fix for this probably should be:

    foo -> fooEx
    fooException -> fooExcp
    fooError -> fooEr

    However, given that that would not be backward compatible, another solution
    would be

    All exceptions map to the Ex suffix. Each collision adds an _ (underscore) at
    the end, if there is a collision.

    However, this has problem with the name changing depending on which exception
    gets processed first, and the resultant definitions are not deterministic.

    Any other ideas?

  • Reported: JAV2I 1.0b1 — Thu, 1 Jun 2000 04:00 GMT
  • Disposition: Resolved — JAV2I 1.1
  • Disposition Summary:

    See revised text below

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Java to IDL mapping contradictive to CORBA/IIOP 2.3.1

  • Key: JAV2I12-18
  • Legacy Issue Number: 3641
  • Status: closed  
  • Source: Anonymous
  • Summary:

    The Java to IDL Language Mapping (formal/99-07-59) seems to contradict the CORBA/IIOP 2.3.1 Specification (formal/99-10-07) over exceptions being raised by valuetype initialisers.

    Section 1.3.5.4 of 99-07-59, point 3 states that exceptions thrown by a constructor of an object-by-value class are mapped to the corresponding OMG IDL exception.

    On the other hand, section 2.8.1.5 of 99-10-07 does not allow initialisers to include a raises clause (contrast this with the syntax for an operation declaration in section 3.12).

    This is a significant inter-operability problem. In my case the IDL generated by the IBM/SUN RMI-IIOP Java-to-IDL compiler (which includes 'raises' clauses in valuetype initialisers) is rejected as syntactically invalid by the MICO IDL-to-C++ compiler.
    submit: Submit Issue Report

  • Reported: JAV2I 1.0b1 — Wed, 24 May 2000 04:00 GMT
  • Disposition: Resolved — JAV2I 1.2
  • Disposition Summary:

    Close, no change. Core RTF issue 4785 has added exceptions to IDL valuetype initializers, which reso

  • Updated: Fri, 6 Mar 2015 20:58 GMT

loader.loadClass() or Class.forName()?

  • Key: JAV2I12-17
  • Legacy Issue Number: 3590
  • Status: closed  
  • Source: Oracle ( Bob Scheifler)
  • Summary:

    In 1.4.9.5, #4 of the Java 2 case:

    4. If a class was not successfully loaded by step 1, 2, or 3, and loader is
    non-null, then call loader.loadClass(className)

    Shouldn't that really be Class.forName(className, false, loader), so that
    array types are handled properly?

    ClassLoader.loadClass does not handle creating new array types (it
    will only find previously created array types), Class.forName does.

  • Reported: JAV2I 1.0b1 — Tue, 2 May 2000 04:00 GMT
  • Disposition: Resolved — JAV2I 1.1
  • Disposition Summary:

    See revised text below.

  • Updated: Fri, 6 Mar 2015 20:58 GMT

No factory for javax.rmi.ClassDesc

  • Key: JAV2I12-16
  • Legacy Issue Number: 3433
  • Status: closed  
  • Source: Borland Software Corporation ( Vijaykumar Natarajan)
  • Summary:

    There appears to be no way to construct a javax.rmi.ClassDesc, since the
    ClassDesc class has two private members and no constructor. This is required by
    non-default implementations of ValueHandler.

    There are many ways to solve this issue.
    1. Add a public constructor to javax.rmi.ClassDesc (preferred)
    2. Make members protected so other implementations can subclass and add
    constructors
    3. create a factory method in say Util that returns a ClassDesc which takes the
    required parameters.

  • Reported: JAV2I 1.0b1 — Mon, 20 Mar 2000 05:00 GMT
  • Disposition: Resolved — JAV2I 1.1
  • Disposition Summary:

    See revised text below

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Mapping for nested sequences --- fix example

  • Key: JAV2I12-35
  • Legacy Issue Number: 1596
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: mapping for nested sequences:

    • error in section 5.6 sequence<seq_Y>
    • no occurrence of >> so no need for white space

    Proposed resolution: fix example in section 5.6

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Unicode example needs fixing

  • Key: JAV2I12-34
  • Legacy Issue Number: 1595
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: The Unicode example given in the spec (5.2.4) is x\u22aBy
    javac diagnoses \u22aB as an invalid character in an identifier.

    A Java identifier may only consist of Unicode characters that denote a
    letter or a digit in a language. \u22aB (apparently) does not.

    Try \u03bC instead. According to 8.2.1 it"s a Greek mu. javac is happy
    with it.

    Proposed resolution: fix example

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

SerializationInputStream and SerializationOutputStream

  • Key: JAV2I12-33
  • Legacy Issue Number: 1594
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: This item arises from the Java-to-IDL Mapping RFP, but is also of
    concern to the Objects By Value RTF because it affects the Java
    ORB implementation of Objects By Value.

    The currently specified delegation relationship between
    SerializationInputStream and SerializationOutputStream and their
    underlying ORB stream classes is inefficient and awkward.
    It is awkward because it requires the ORB implementation of the
    underlying streams to know about their "wrapper" serialization
    streams and to be careful to always pass out a reference to the
    wrapper instead of a "this" pointer. It is inefficient because
    all items (even primitives) that are written to these streams
    need to go through an extra delegation step through the wrapper
    class as the underlying stream does not know whether it can
    safely bypass the wrapper method.

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Mapping of Java byte constants to IDL

  • Key: JAV2I12-26
  • Legacy Issue Number: 4058
  • Status: closed  
  • Source: hursley.ibm.com ( Simon Nash)
  • Summary:

    Since Java byte values are mapped bit-for-bit to IDL (see section 1.3.3),
    the same should apply to byte constants. For example, -1 should map to 255.
    However, section 1.3.4.5 says that these constants are mapped to the
    same values.

    Proposed resolution:

    In section 1.3.4.5, change "are mapped to the same values" to "are mapped
    to the same values, except for byte constants which are mapped bit-for-bit.
    For example, -1 maps to 255."

  • Reported: JAV2I 1.0b1 — Thu, 16 Nov 2000 05:00 GMT
  • Disposition: Resolved — JAV2I 1.1
  • Disposition Summary:

    resolved, see below

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Mapping CORBA minor codes to Java

  • Key: JAV2I12-25
  • Legacy Issue Number: 4004
  • Status: closed  
  • Source: hursley.ibm.com ( Simon Nash)
  • Summary:

    Section 1.4.8 of the Java to IDL mapping spec says that when mapping
    CORBA system exceptions to RMI exceptions, the minor code is formatted
    as a decimal number. This is a readability issue for both OMG standard
    minor codes and vendor-specific minor codes. For example, the OMG
    standard minor code 0x4f4d0001 would be formatted as 1330446337 and a
    vendor proprietary minor code 0xc9c25401 would be formatted as 3384955905
    (or -910011391 if using signed 32-bit arithmetic).

    Proposed resolution:

    In section 1.4.8, change the fourth bullet to:
    • followed by the hexadecimal value of the system exception’s minor code

    In the following paragraph, change the example detail string to:
    “CORBA UNKNOWN 0x31 Maybe”

  • Reported: JAV2I 1.0b1 — Mon, 30 Oct 2000 05:00 GMT
  • Disposition: Resolved — JAV2I 1.1
  • Disposition Summary:

    See revised text below.

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Default Constructor for Stubs

  • Key: JAV2I12-30
  • Legacy Issue Number: 1591
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: This item arises from the Java-to-IDL Mapping RFP, but is also of
    concern to the IDL-to-Java RTF because it affects the IDL-to-Java
    mapping.

    When adding support for idlToJava generated Stubs to
    "InputStream.read_Object(java.lang.Class clz)" we ran into a small
    problem while writing the code. Initially we used "clz.newInstance()"
    to create an instance of the Stub object. The problem here is the
    Stub does not have a default constructor, so newInstance throws an
    exception. We added a default constructor to the stub and everything
    worked fine. The question is: should we add a default constructor to
    the stubs generated by idlToJava or should we use reflection(cost??) to
    invoke the one constructor that is already a member of the stub class?

    I propose that we state in the spec that a default constructor is
    required on all generated Stubs.

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Marshalling of Any, Context, Principal, and TypeCode

  • Key: JAV2I12-29
  • Legacy Issue Number: 1590
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: This item arises from the Java-to-IDL Mapping RFP, but is also of
    concern to the IDL-to-Java RTF because it affects the IDL-to-Java
    mapping.

    How do SerializationInputStream and SerializationOutputStream marshal
    Any, Context, Principal, and TypeCode objects? Is the same mechanism
    used as for user-defined IDL types, i.e., look for the IDLEntity
    marker interface and call the implementation helper class"s write
    or read method? If so, we need to clarify that vendor implementation
    of these types must implement IDLEntity and provide a Helper class.

    I propose that we state in the spec that vendor implementations of
    these types must implement IDLEntity and provide a Helper class.

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Obtaining a default ORB

  • Key: JAV2I12-32
  • Legacy Issue Number: 1593
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: This item arises from the Java-to-IDL Mapping RFP, but is also of
    concern to the IDL-to-Java RTF because it affects the IDL-to-Java
    mapping.

    There are two places in the Java to IDL mapping spec that imply
    the use of a default ORB. One is the toStub method of the
    PortableRemoteObject class, and the other is the readObject method
    of the javax.rmi.CORBA.Stub class. It is not clear how we can
    obtain a suitable default ORB for use in these APIs without either
    excessive resource consumption (if we start a new ORB every time)
    or violating applet isolation boundaries (if we use the same ORB
    every time).

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    Closed, accepted

  • Updated: Fri, 6 Mar 2015 20:58 GMT

How to make IDLEntity types serializable

  • Key: JAV2I12-31
  • Legacy Issue Number: 1592
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: This item arises from the Java-to-IDL Mapping RFP, but is also of
    concern to the IDL-to-Java RTF because it affects the IDL-to-Java
    mapping.

    The Java to IDL mapping spec states that Java types produced by
    the direct mapping should implement IDLEntity and be serializable.
    This could be accomplished by having IDLEntity extend
    Java.io.Serializable, or by having the generated types extend
    both IDLEntity and java.io.Serializable. The spec should
    specify which of these approaches is to be used.

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Public method declarations in ResponseHandler interface

  • Key: JAV2I12-27
  • Legacy Issue Number: 1578
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: This item affects the Java-to-IDL spec, but is also of concern to the
    IDL-to-Java RTF because it relates to the new portability stub APIs.

    Section 7.2.2 of the Java to IDL mapping specifies a new interface
    ResponseHandler with methods createReply and createExceptionReply.
    These methods are declared as public.

    Section 9.4 of the Java Language Specification states that "Every
    method declaration in the body of an interface is implicitly public.
    It is permitted, but strongly discouraged as a matter of style, to
    redundantly specify the public modifier for interface methods."

    I propose that the public modifier be removed from these method
    declarations.

  • Reported: JAV2I 1.0b1 — Wed, 24 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Support for serialPersistentFields

  • Key: JAV2I13-15
  • Legacy Issue Number: 2091
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: Moving forward to JDK 1.2, the IDL value type data mapping needs
    to factor in the new serialPersistentFields declaration. And there"s
    an interesting question whether the existence of a writeReplace method
    should influence the decision to map to a custom value.

  • Reported: JAV2I 1.0b1 — Fri, 16 Oct 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.3
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT

orb() method on InputStream

  • Key: JAV2I12-28
  • Legacy Issue Number: 1589
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Summary: This item affects the Java-to-IDL spec, but is also of concern to the
    IDL-to-Java RTF because it relates to the new portability stub APIs.

    An orb() method is needed on org.omg.CORBA.portable.InputStream for
    SerializationInputStream to call to find which ORB to use for
    lookup_value_factory during execution of read_Value.

    I propose adding an orb() method to org.omg.CORBA.portable.InputStream.

  • Reported: JAV2I 1.0b1 — Mon, 29 Jun 1998 04:00 GMT
  • Disposition: Resolved — JAV2I 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT