/** * replace null member IDs with the given identifier. This is used to incorporate version * information into the cache that has been received from another VM * */ public void replaceNullIDs(VersionSource id) { if (this.memberID == null) { this.memberID = (T) id; } if (this.previousMemberID == null && this.hasPreviousMemberID() && entryVersion > 1) { this.previousMemberID = (T) id; } }
@Override public String toString() { StringBuilder s = new StringBuilder(); if (isGatewayTag()) { s.append("{ds=").append(this.distributedSystemId).append("; time=") .append(getVersionTimeStamp()).append("}"); } else { s.append("{v").append(this.entryVersion); s.append("; rv").append(getRegionVersion()); if (this.memberID != null) { s.append("; mbr=").append(this.memberID); } if (hasPreviousMemberID()) { s.append("; prev=").append(this.previousMemberID); } if (this.distributedSystemId >= 0) { s.append("; ds=").append(this.distributedSystemId); } s.append("; time=").append(getVersionTimeStamp()); if (isFromOtherMember()) { s.append("; remote"); } if (this.isAllowedByResolver()) { s.append("; allowed"); } s.append("}"); } return s.toString(); }
@SuppressWarnings("unchecked") @Test public void testPreviousMemberIDBit() { assertEquals(false, vt.hasPreviousMemberID()); vt.setPreviousMemberID(null); assertEquals(true, vt.hasPreviousMemberID()); }
private void applyVersionTag(InternalRegion region, VersionStamp stamp, VersionTag tag, InternalDistributedMember sender) { VersionSource mbr = tag.getMemberID(); if (mbr == null) { mbr = sender; } mbr = region.getVersionVector().getCanonicalId(mbr); tag.setMemberID(mbr); stamp.setVersions(tag); if (tag.hasPreviousMemberID()) { if (tag.getPreviousMemberID() == null) { tag.setPreviousMemberID(stamp.getMemberID()); } else { tag.setPreviousMemberID( region.getVersionVector().getCanonicalId(tag.getPreviousMemberID())); } } }