Legacy Issue Number: 4159
Source: UBS ( Hans Kneubuehl)
CORBA Core should state that language mappings providing a narrowing mechanism
are also required to provide an 'unchecked narrowing'-mechanism.
The original CORBA Messaging specification (orbos/98-05-05) specifies an
unchecked narrow operation that has not been changed by any Messaging RTF.
'unchecked narrowing' is not an issue of a single language mapping. Therefore,
it would be good if this was formulated in the CORBA Core as a general
requirement for any language mapping.
The originally adopted CORBA Messaging specification, orbos/98-05-05, had an
explanatory paragraph for this purpose:
'3.3.7 Note on Asynchrony and Narrowing of Object References
Many programming languages map IDL interfaces to programming constructs that
support inheritance. In those language mappings (such as C++ and Java) that
a mechanism for narrowing an Object reference of a base interface to a more
interface, the act of narrowing may require the full type hierarchy of the
target. In this case, the implementation of narrow must either contact an
interface repository or the target itself to determine whether or not it is
safe to narrow the client’s object reference. This requirement is not
acceptable when a client is expecting only
asynchronous communication with the target. Therefore, for the appropriate
this specification adds an unchecked narrow operation to the IDL mappings for
interface. This unchecked narrow always returns a stub of the requested type
checking that the target really implements that interface. If a client narrows
the target to an unsupported interface type, invoking the unsupported
operations will raise the system exception CORBA::BAD_OPERATION.'
However, the semantics of the above have obviously not made it into CORBA 2.4.
Reported: CORBA 2.4.1 — Fri, 19 Jan 2001 05:00 GMT
Disposition: Resolved — CORBA 2.5
Incorporate changes and close issue
Updated: Fri, 6 Mar 2015 20:58 GMT