private synchronized List<RVVException> getExceptions() { mergeBitSet(); if (this.exceptions != null) { return this.exceptions; } else { return EMPTY_EXCEPTIONS; } }
synchronized void removeExceptionsOlderThan(long v) { mergeBitSet(); if (this.exceptions != null) { for (Iterator<RVVException> it = this.exceptions.iterator(); it.hasNext();) { RVVException e = it.next(); if (e.nextVersion <= v) { it.remove(); } } if (this.exceptions.isEmpty()) { this.exceptions = null; } } }
public synchronized int hashCode() { mergeBitSet(); final int prime = 31; int result = 1; result = prime * result + (int) version; result = prime * result + (int) (version >> 32); result = prime * result + canonicalExceptions(exceptions).hashCode(); return result; }
@Override public synchronized RegionVersionHolder<T> clone() { RegionVersionHolder<T> clone = new RegionVersionHolder<T>(this.version); clone.id = this.id; clone.isDepartedMember = this.isDepartedMember; if (this.exceptions != null) { clone.exceptions = new LinkedList<RVVException>(); for (RVVException e : this.exceptions) { clone.exceptions.add(e.clone()); } } if (this.bitSet != null) { clone.bitSet = (BitSet) this.bitSet.clone(); clone.bitSetVersion = this.bitSetVersion; clone.mergeBitSet(); } return clone; }
@Override public synchronized void toData(DataOutput out) throws IOException { mergeBitSet(); InternalDataSerializer.writeUnsignedVL(this.version, out); int size = (this.exceptions == null) ? 0 : this.exceptions.size(); InternalDataSerializer.writeUnsignedVL(size, out); out.writeBoolean(this.isDepartedMember); if (size > 0) { for (RVVException e : this.exceptions) { InternalDataSerializer.invokeToData(e, out); } } }
mergeBitSet(); other.mergeBitSet();
mergeBitSet(); // dump the bit-set exceptions into the regular exceptions list other.mergeBitSet(); List<RVVException> mine = canonicalExceptions(this.exceptions); Iterator<RVVException> myIterator = mine.iterator();
mergeBitSet(); if (getVersion() != other.getVersion()) { return false;