{
checkShutdownState();
// Handle the null objref case
if (obj == null) {
IOR nullIOR = IORFactories.makeIOR( this ) ;
return nullIOR.stringify();
}
IOR ior = null ;
try {
ior = ORBUtility.connectAndGetIOR( this, obj ) ;
} catch (BAD_PARAM bp) {
// Throw MARSHAL instead if this is a LOCAL_OBJECT_NOT_ALLOWED error.
if (bp.minor == ORBUtilSystemException.LOCAL_OBJECT_NOT_ALLOWED) {
throw omgWrapper.notAnObjectImpl( bp ) ;
} else
// Not a local object problem: just rethrow the exception.
// Do not wrap and log this, since it was already logged at its
// point of origin.
throw bp ;
}
return ior.stringify() ;
}