if (so == null) {
return executeNamedQuery(name, theClass, arguments);
}
try {
Object[] copies = Util.copyObjects(new Object[] { name, theClass, arguments }, _orb());
Transporter nameCopy = (Transporter)copies[0];
Transporter theClassCopy = (Transporter)copies[1];
Transporter argumentsCopy = (Transporter)copies[2];
Transporter result = ((RMIRemoteSessionController)so.servant).executeNamedQuery(nameCopy, theClassCopy, argumentsCopy);
return (Transporter)Util.copyObject(result, _orb());
} catch (Throwable ex) {
Throwable exCopy = (Throwable)Util.copyObject(ex, _orb());
throw Util.wrapException(exCopy);
} finally {