// special handling of temp ids... Return an empty list immediately so that
// upstream code could throw FaultFailureException, etc. Don't attempt to
// translate and run the query. See for instance CAY-1651
if (oid.isTemporary() && !oid.isReplacementIdAttached()) {
response = new ListResponse();
return DONE;
}
DataRow row = null;
if (cache != null && !oidQuery.isFetchMandatory()) {
row = cache.getCachedSnapshot(oidQuery.getObjectId());
}
// refresh is forced or not found in cache
if (row == null) {
if (oidQuery.isFetchAllowed()) {
runQueryInTransaction();
}
else {
response = new ListResponse();
}
}
else {
response = new ListResponse(row);
}
return DONE;
}