// is protected. We need the ec, so we do what we have to...
EOEditingContext ec = (EOEditingContext) currentEditingContext.invoke(dbChannel, new Object[] {});
// Get the snapshot if it has not expired. cachedSnapshot will be null if it has expired
// If not null, it should be the same as the existingSnapshot parameter
NSDictionary cachedSnapshot = dbCtxt.database().snapshotForGlobalID(gid, ec.fetchTimestamp());
// If we are refreshing or the snapshot in the cache has timed out, but the fetched row
// matches the cached snapshot, reset the time stamp by recording the existing snapshot again.
if (existingSnapshot.equals(fetchedRow) && (dbChannel.isRefreshingObjects() || cachedSnapshot == null)) {
dbCtxt.database().recordSnapshotForGlobalID(existingSnapshot, gid);