@Override public String toString() { if (this.isDestroyed()) { return "EntrySnapshot(#destroyed#" + regionEntry.getKey() + "; version=" + this.getVersionTag() + ")"; } else { return "EntrySnapshot(" + this.regionEntry + ")"; } }
@Override public String toString() { if (this.isDestroyed()) { return "EntrySnapshot(#destroyed#" + regionEntry.getKeyCopy() + "; version=" + this.getVersionTag() + ")"; } else { return "EntrySnapshot(key=" + regionEntry.getKeyCopy() + ";valueInVM=" + this.regionEntry.getValueInVM(null) + ')'; } }
/** * Test hook - returns the version stamp for an entry in the form of a * version tag * @param key * @return the entry version information */ public VersionTag getVersionTag(Object key) { Region.Entry entry = getEntry(key, true); VersionTag tag = null; if (entry != null && entry instanceof EntrySnapshot) { tag = ((EntrySnapshot)entry).getVersionTag(); } else if (entry != null && entry instanceof NonTXEntry) { tag = ((NonTXEntry)entry).getRegionEntry().getVersionStamp().asVersionTag(); } return tag; }
@Override public Get70.Entry getValueAndIsObject(Region region, Object key, Object callbackArg, ServerConnection servConn) { LocalRegion lregion = (LocalRegion)region; Object data = null; Region.Entry entry = region.getEntry(key); if (logger.isDebugEnabled()) { logger.debug("GetEntryCommand: for key: {} returning entry: {}", key, entry); } VersionTag tag = null; if (entry != null) { EntrySnapshot snap = new EntrySnapshot(); NonLocalRegionEntry re = new NonLocalRegionEntry(entry, lregion); snap.setRegionEntry(re); snap.setRegion(lregion); data = snap; tag = snap.getVersionTag(); } Get70.Entry result = new Get70.Entry(); result.value = data; result.isObject = true; result.keyNotPresent = false; result.versionTag = tag; return result; } }
Object value = null; if (entry instanceof EntrySnapshot) { vt = ((EntrySnapshot) entry).getVersionTag(); key = ((EntrySnapshot) entry).getRegionEntry().getKey(); value = ((EntrySnapshot) entry).getRegionEntry().getValue(null);
/** * Create one of these in the local case so that we have a snapshot of the state * and can allow the bucket to move out from under us. */ public NonLocalRegionEntry(Region.Entry re, LocalRegion br) { this.key = re.getKey(); this.value = re.getValue(); if (this.value instanceof CachedDeserializable) { // We make a copy of the CachedDeserializable. // That way the NonLocalRegionEntry will be disconnected // from the CachedDeserializable that is in our cache and // will not modify its state. this.value = CachedDeserializableFactory.create((CachedDeserializable)this.value); } Assert.assertTrue(this.value != Token.NOT_AVAILABLE, "getEntry did not fault value in from disk"); this.lastModified = 0l;//re.getStatistics().getLastModifiedTime(); this.isRemoved = Token.isRemoved(value); if (re instanceof EntrySnapshot) { this.versionTag = ((EntrySnapshot)re).getVersionTag(); } else { // TODO need to get version information from transaction entries } }
/** * Test hook - returns the version stamp for an entry in the form of a * version tag * @param key * @return the entry version information */ public VersionTag getVersionTag(Object key) { try{ operationStart(); Region.Entry entry = getEntry(key, discoverJTA(), true); VersionTag tag = null; if (entry != null && entry instanceof EntrySnapshot) { tag = ((EntrySnapshot)entry).getVersionTag(); } else if (entry != null && entry instanceof NonTXEntry) { tag = ((NonTXEntry)entry).getRegionEntry().getVersionStamp().asVersionTag(); } return tag; } finally { operationCompleted(); } }
@Override public void getValueAndIsObject(Region p_region, Object key, Object callbackArg, LogWriterI18n logger, ServerConnection servConn, TXStateInterface tx, Object[] result) { Object data = null; LocalRegion region = (LocalRegion) p_region; Entry entry = region.getEntry(key, tx); if (logger.fineEnabled()) { logger.fine("GetEntryCommand: for key:"+key+" returning entry:"+entry); } if (entry != null) { EntrySnapshot snap; VersionTag<?> tag = null; if (entry instanceof EntrySnapshot) { snap = (EntrySnapshot)entry; tag = snap.getVersionTag(); } else { snap = new EntrySnapshot(); } NonLocalRegionEntry re = NonLocalRegionEntry.newEntry(key, entry.getValue(), region, tag); snap.setRegionEntry(re); snap.setRegion(region); data = snap; } result[0] = data; result[1] = true; // isObject is true } }
if (entry instanceof EntrySnapshot) { snap = (EntrySnapshot)entry; tag = snap.getVersionTag();
versionTag = ((EntrySnapshot)re).getVersionTag();