public boolean hasValidVersion() { VersionStamp stamp = (VersionStamp) this; return stamp.getRegionVersion() != 0 || stamp.getEntryVersion() != 0; }
@Override public void run() { assertThat(CCRegion.get(loadKey)).isEqualTo("loadedValue"); assertThat((CCRegion.getRegionEntry(loadKey)).getVersionStamp().getEntryVersion()) .isEqualTo( (long) 3); } });
return true; if (vs.getEntryVersion() != destroyedVersion) {
byte[] serializeVersionTag(VersionStamp stamp) throws IOException { int entryVersion = stamp.getEntryVersion(); long regionVersion = stamp.getRegionVersion(); VersionSource versionMember = stamp.getMemberID(); long timestamp = stamp.getVersionTimeStamp(); int dsId = stamp.getDistributedSystemId(); return serializeVersionTag(entryVersion, regionVersion, versionMember, timestamp, dsId); }
InternalDistributedMember sender, StringBuilder verbose) { int stampVersion = stamp.getEntryVersion(); int tagVersion = tag.getEntryVersion();
private VersionTag getVersionTagFromStamp(VersionStamp stamp) { VersionTag tag = VersionTag.create(stamp.getMemberID()); tag.setEntryVersion(stamp.getEntryVersion()); tag.setRegionVersion(stamp.getRegionVersion()); tag.setVersionTimeStamp(stamp.getVersionTimeStamp()); tag.setDistributedSystemId(stamp.getDistributedSystemId()); return tag; }
/** * Returns true if the cache already has this key as an invalid entry with a version >= the one in * the given event. This is used in cache-miss processing to avoid overwriting the entry when it * is not necessary, so that we avoid invoking cache listeners. * * @return whether the entry is already invalid */ private boolean alreadyInvalid(Object key, EntryEventImpl event) { @Unretained(ENTRY_EVENT_NEW_VALUE) Object newValue = event.getRawNewValue(); if (newValue == null || Token.isInvalid(newValue)) { RegionEntry entry = this.entries.getEntry(key); if (entry != null) { synchronized (entry) { if (entry.isInvalid()) { VersionStamp stamp = entry.getVersionStamp(); if (stamp == null || event.getVersionTag() == null) { return true; } if (stamp.getEntryVersion() >= event.getVersionTag().getEntryVersion()) { return true; } } } } } return false; }
int entryVersion = re.getVersionStamp().getEntryVersion(); if (!re.isTombstone() || entryVersion > destroyedVersion) { if (logger.isTraceEnabled(LogMarker.TOMBSTONE_COUNT_VERBOSE)) { logger.trace(LogMarker.TOMBSTONE_COUNT_VERBOSE, "tombstone for {} was resurrected with v{}; destroyed version was v{}; count is {}; entryMap size is {}", re.getKey(), re.getVersionStamp().getEntryVersion(), destroyedVersion, this._getOwner().getTombstoneCount(), size());
if (stamp != null && region.getServerProxy() == null) { int v = stamp.getEntryVersion() + 1; if (v > 0xFFFFFF) { v -= 0x1000000; // roll-over