new BasicMethodConstraints(absoluteConstraints);
}
}
boolean force = false;
Remote currProxy;
Failure failure = null;
/*
* Attempt object activation if underlying proxy is unknown.
*/
synchronized (this) {
if (uproxy == null) {
activate(force, proxy, method);
force = true;
}
currProxy = uproxy;
}
for (int retries = MAX_RETRIES; --retries >= 0; ) {
if (logger.isLoggable(Levels.HANDLED)) {
if (failure != null) {
logThrow(Levels.HANDLED, "outbound call",
"invokeRemoteMethod",
method, failure.exception);
}
}
if ((clientConstraints != null) &&
!(currProxy instanceof RemoteMethodControl))
{
throw new UnsupportedConstraintException(
"underlying proxy does not implement RemoteMethodControl");
}
/*
* Set constraints on target proxy only if relative constraints
* were made absolute.
*/
Remote targetProxy =
(convertedConstraints == null ?
currProxy :
(Remote) ((RemoteMethodControl) currProxy).
setConstraints(convertedConstraints));