if (valueHolder == null) {
// For remote session the original value holder is transient,
// so the value must be found in the registry or created.
RemoteUnitOfWork remoteUnitOfWork = (RemoteUnitOfWork)((UnitOfWorkValueHolder)unitOfWorkIndirectionObject).getRemoteUnitOfWork();
RemoteSessionController controller = remoteUnitOfWork.getParentSessionController();
ObjID id = ((UnitOfWorkValueHolder) unitOfWorkIndirectionObject).getWrappedValueHolderRemoteID();
if (id != null) {
// This value holder may be on the server, or the client,
// on the server, the controller should exists, so can lock up in it,
// on the client, the id should be enough to create a new remote value holder.
if (controller != null) {