Some different IOR string can be same org.omg.CORBA.Object object.
So the method to judge whether 2 IOR are same cannot use String.equal, instead:
private boolean isSameIOR(String ior1, String ior2)
{
org.omg.CORBA.Object obj1 = null;
org.omg.CORBA.Object obj2 = null;
try {
obj1 = orb.string_to_object(ior1);
obj2 = orb.string_to_object(ior2);
return obj1._is_equivalent(obj2);
} catch (Exception e) {
return false;
}
}
For example, following 2 IOR are different with String expression, but they are point to same object.
[IOR:000000000000003C49444C3A6F72672F63736170692F66772F66775F6163636573732F74727573745F616E645F73656375726974792F4970496E697469616C3A312E30000000000100000000000000780001020 00000000E3133352E3235322E3138312E3300BE5A00000021626A74657374332F7061726C6179504F412F4970496E697469616C5061726C6179313431000000020000000000000008000000004A414300000000010000001C00000000000100010000000105010001000101090000000105010001]
[IOR:000000000000003C49444C3A6F72672F63736170692F66772F66775F6163636573732F74727573745F616E645F73656375726974792F4970496E697469616C3A312E30000000000100000000000000780001025 00000000E3133352E3235322E3138312E3300BE5A00000021626A74657374332F7061726C6179504F412F4970496E697469616C5061726C6179313431000000020000000000000008000000004A414300000000010000001C00000000000100010000000105010001000101090000000105010001]
if use orb.rebind(naming, orb.string_to_object(ior)), and orb.resolve(naming) then
both IOR can get same result value.