From 24a850c1cbacd32e00c42d1714410ff11e1d7647 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 9 Jan 2017 16:31:52 +0100 Subject: [PATCH] BUG-7464: fix checkstyle warnings With no functional changes, this patch cleans up most of the warnings reported by checkstyle. Change-Id: I24833d1038eb98a04cecd18c3055757cb1ea7cbc Signed-off-by: Robert Varga --- .../yangtools/triemap/AbstractKeySet.java | 2 +- .../opendaylight/yangtools/triemap/CNode.java | 9 ++- .../yangtools/triemap/Constants.java | 5 +- .../yangtools/triemap/EntryNode.java | 2 +- .../opendaylight/yangtools/triemap/INode.java | 41 +++++++------- .../yangtools/triemap/ImmutableKeySet.java | 1 + .../yangtools/triemap/ImmutableTrieMap.java | 4 +- .../opendaylight/yangtools/triemap/LNode.java | 12 ++-- .../yangtools/triemap/LNodeEntries.java | 26 ++++----- .../yangtools/triemap/MutableEntrySet.java | 4 +- .../yangtools/triemap/MutableIterator.java | 5 +- .../yangtools/triemap/MutableTrieMap.java | 18 +++--- .../opendaylight/yangtools/triemap/SNode.java | 8 +-- .../opendaylight/yangtools/triemap/TNode.java | 14 ++--- .../yangtools/triemap/TrieMap.java | 22 +++++--- .../triemap/TestCNodeFlagCollision.java | 8 +-- .../TestCNodeInsertionIncorrectOrder.java | 2 +- .../triemap/TestConcurrentMapPutIfAbsent.java | 6 +- .../triemap/TestConcurrentMapRemove.java | 4 +- .../triemap/TestConcurrentMapReplace.java | 4 +- .../yangtools/triemap/TestDelete.java | 10 ++-- .../yangtools/triemap/TestHashCollisions.java | 18 +++--- .../TestHashCollisionsRemoveIterator.java | 2 +- .../yangtools/triemap/TestInsert.java | 4 +- .../yangtools/triemap/TestMapIterator.java | 14 ++--- .../triemap/TestMultiThreadAddDelete.java | 38 ++++++------- .../triemap/TestMultiThreadInserts.java | 8 +-- .../triemap/TestMultiThreadMapIterator.java | 56 +++++++++---------- .../TestReadOnlyAndUpdatableIterators.java | 14 ++--- 29 files changed, 180 insertions(+), 181 deletions(-) diff --git a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/AbstractKeySet.java b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/AbstractKeySet.java index 8e80392fab..277156a5b5 100644 --- a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/AbstractKeySet.java +++ b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/AbstractKeySet.java @@ -21,7 +21,7 @@ import java.util.AbstractSet; import java.util.Collection; /** - * Abstract base class for key set views of a TrieMap + * Abstract base class for key set views of a TrieMap. * * @author Robert Varga * diff --git a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/CNode.java b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/CNode.java index 593a66d3c2..f6f95298f0 100644 --- a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/CNode.java +++ b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/CNode.java @@ -42,9 +42,9 @@ final class CNode extends MainNode { this(gen, 0, EMPTY_ARRAY); } - static MainNode dual(final SNode x, final K k, final V v, final int hc, final int lev, + static MainNode dual(final SNode x, final K key, final V value, final int hc, final int lev, final Gen gen) { - return dual(x, x.hc, new SNode<>(k, v, hc), hc, lev, gen); + return dual(x, x.hc, new SNode<>(key, value, hc), hc, lev, gen); } private static MainNode dual(final SNode x, final int xhc, final SNode y, final int yhc, @@ -133,12 +133,11 @@ final class CNode extends MainNode { CNode insertedAt(final int pos, final int flag, final BasicNode nn, final Gen gen) { int len = array.length; - int bmp = bitmap; BasicNode[] narr = new BasicNode[len + 1]; System.arraycopy(array, 0, narr, 0, pos); narr [pos] = nn; System.arraycopy(array, pos, narr, pos + 1, len - pos); - return new CNode<>(gen, bmp | flag, narr); + return new CNode<>(gen, bitmap | flag, narr); } /** @@ -235,7 +234,7 @@ final class CNode extends MainNode { // } @Override - public String toString () { + public String toString() { // val elems = collectLocalElems // "CNode(sz: %d; %s)".format(elems.size, // elems.sorted.mkString(", ")) diff --git a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/Constants.java b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/Constants.java index af72936550..931db16225 100644 --- a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/Constants.java +++ b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/Constants.java @@ -44,15 +44,14 @@ final class Constants { * Number of hash bits consumed in each CNode level. */ static final int LEVEL_BITS = 5; - static { - verify(LEVEL_BITS == IntMath.log2(BITMAP_BITS, RoundingMode.UNNECESSARY)); - } /** * Maximum depth of a TrieMap. */ static final int MAX_DEPTH = 7; + static { + verify(LEVEL_BITS == IntMath.log2(BITMAP_BITS, RoundingMode.UNNECESSARY)); verify(MAX_DEPTH == IntMath.divide(HASH_BITS, LEVEL_BITS, RoundingMode.CEILING)); } } diff --git a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/EntryNode.java b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/EntryNode.java index d50b7d4738..4f12ade4f9 100644 --- a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/EntryNode.java +++ b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/EntryNode.java @@ -27,7 +27,7 @@ import java.util.Map.Entry; */ interface EntryNode extends Entry { @Override - default public V setValue(final V value) { + default V setValue(final V value) { throw new UnsupportedOperationException(); } } diff --git a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/INode.java b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/INode.java index f779868dc1..eb0d895865 100644 --- a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/INode.java +++ b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/INode.java @@ -73,7 +73,7 @@ final class INode extends BasicNode { return fn.READ_PREV(); } - // Tail recursion: return GCAS_Complete (/* READ */ mainnode, ct); + // Tail recursion: return GCAS_Complete(/* READ */ mainnode, ct); m = /* READ */ mainnode; continue; } @@ -92,7 +92,7 @@ final class INode extends BasicNode { return m; } - // Tail recursion: return GCAS_Complete (m, ct); + // Tail recursion: return GCAS_Complete(m, ct); continue; } @@ -127,9 +127,9 @@ final class INode extends BasicNode { * * @return true if successful, false otherwise */ - boolean rec_insert(final K k, final V v, final int hc, final int lev, final INode parent, + boolean rec_insert(final K key, final V value, final int hc, final int lev, final INode parent, final TrieMap ct) { - return rec_insert(k, v, hc, lev, parent, gen, ct); + return rec_insert(key, value, hc, lev, parent, gen, ct); } private boolean rec_insert(final K k, final V v, final int hc, final int lev, final INode parent, @@ -155,7 +155,7 @@ final class INode extends BasicNode { return in.rec_insert(k, v, hc, lev + LEVEL_BITS, this, startgen, ct); } if (GCAS(cn, cn.renewed(startgen, ct), ct)) { - // Tail recursion: return rec_insert (k, v, hc, lev, parent, startgen, ct); + // Tail recursion: return rec_insert(k, v, hc, lev, parent, startgen, ct); continue; } @@ -167,8 +167,9 @@ final class INode extends BasicNode { } final CNode rn = (cn.gen == gen) ? cn : cn.renewed(gen, ct); - final MainNode nn = rn.updatedAt(pos, inode(CNode.dual(sn, k, v, hc, lev + LEVEL_BITS, gen)), gen); - return GCAS (cn, nn, ct); + final MainNode nn = rn.updatedAt(pos, inode( + CNode.dual(sn, k, v, hc, lev + LEVEL_BITS, gen)), gen); + return GCAS(cn, nn, ct); } else { throw CNode.invalidElement(cnAtPos); } @@ -176,7 +177,7 @@ final class INode extends BasicNode { final CNode rn = (cn.gen == gen) ? cn : cn.renewed(gen, ct); final MainNode ncnode = rn.insertedAt(pos, flag, new SNode<>(k, v, hc), gen); - return GCAS (cn, ncnode, ct); + return GCAS(cn, ncnode, ct); } else if (m instanceof TNode) { clean(parent, ct, lev - LEVEL_BITS); return false; @@ -194,6 +195,15 @@ final class INode extends BasicNode { throw new VerifyException("An INode can host only a CNode, a TNode or an LNode, not " + elem); } + @SuppressFBWarnings(value = "NP_OPTIONAL_RETURN_NULL", + justification = "Returning null Optional indicates the need to restart.") + private Optional insertDual(final TrieMap ct, final CNode cn, final int pos, final SNode sn, + final K k, final V v, final int hc, final int lev) { + final CNode rn = (cn.gen == gen) ? cn : cn.renewed(gen, ct); + final MainNode nn = rn.updatedAt(pos, inode(CNode.dual(sn, k, v, hc, lev + LEVEL_BITS, gen)), gen); + return GCAS(cn, nn, ct) ? Optional.empty() : null; + } + /** * Inserts a new key value pair, given that a specific condition is met. * @@ -210,15 +220,6 @@ final class INode extends BasicNode { return rec_insertif(k, v, hc, cond, lev, parent, gen, ct); } - @SuppressFBWarnings(value = "NP_OPTIONAL_RETURN_NULL", - justification = "Returning null Optional indicates the need to restart.") - private Optional insertDual(final TrieMap ct, final CNode cn, final int pos, final SNode sn, - final K k, final V v, final int hc, final int lev) { - final CNode rn = (cn.gen == gen) ? cn : cn.renewed(gen, ct); - final MainNode nn = rn.updatedAt(pos, inode(CNode.dual(sn, k, v, hc, lev + LEVEL_BITS, gen)), gen); - return GCAS(cn, nn, ct) ? Optional.empty() : null; - } - @SuppressFBWarnings(value = "NP_OPTIONAL_RETURN_NULL", justification = "Returning null Optional indicates the need to restart.") private Optional rec_insertif(final K k, final V v, final int hc, final Object cond, final int lev, @@ -245,7 +246,7 @@ final class INode extends BasicNode { } if (GCAS(cn, cn.renewed(startgen, ct), ct)) { - // Tail recursion: return rec_insertif (k, v, hc, cond, lev, parent, startgen, ct); + // Tail recursion: return rec_insertif(k, v, hc, cond, lev, parent, startgen, ct); continue; } @@ -293,7 +294,7 @@ final class INode extends BasicNode { } } else if (cond == null || cond == ABSENT) { final CNode rn = (cn.gen == gen) ? cn : cn.renewed(gen, ct); - final CNode ncnode = rn.insertedAt (pos, flag, new SNode<>(k, v, hc), gen); + final CNode ncnode = rn.insertedAt(pos, flag, new SNode<>(k, v, hc), gen); if (GCAS(cn, ncnode, ct)) { return Optional.empty(); } @@ -588,4 +589,4 @@ final class INode extends BasicNode { String string(final int lev) { return "INode"; } -} \ No newline at end of file +} diff --git a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/ImmutableKeySet.java b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/ImmutableKeySet.java index fa8f39f3af..a25649e777 100644 --- a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/ImmutableKeySet.java +++ b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/ImmutableKeySet.java @@ -48,6 +48,7 @@ final class ImmutableKeySet extends AbstractKeySet { public boolean remove(final Object o) { throw unsupported(); } + @Override public boolean retainAll(final Collection c) { throw unsupported(); diff --git a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/ImmutableTrieMap.java b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/ImmutableTrieMap.java index e6c29b6bde..f3f63be424 100644 --- a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/ImmutableTrieMap.java +++ b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/ImmutableTrieMap.java @@ -24,7 +24,7 @@ import java.util.function.BiFunction; import java.util.function.Function; /** - * An immutable TrieMap + * An immutable TrieMap. * * @author Robert Varga * @@ -109,7 +109,7 @@ public final class ImmutableTrieMap extends TrieMap { } @Override - public final TrieMap mutableSnapshot() { + public TrieMap mutableSnapshot() { return new MutableTrieMap<>(equiv(), new INode<>(new Gen(), root.gcasRead(this))); } diff --git a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/LNode.java b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/LNode.java index e7905ac4e8..b4584d1591 100644 --- a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/LNode.java +++ b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/LNode.java @@ -29,8 +29,8 @@ final class LNode extends MainNode { this(LNodeEntries.map(k1, v1, k2, v2), 2); } - LNode insertChild( final K k, final V v) { - return new LNode<>(entries.insert(k, v), size + 1); + LNode insertChild( final K key, final V value) { + return new LNode<>(entries.insert(key, value), size + 1); } MainNode removeChild(final LNodeEntry entry, final int hc) { @@ -48,12 +48,12 @@ final class LNode extends MainNode { return new LNode<>(map, size - 1); } - MainNode replaceChild(final LNodeEntry entry, final V v) { - return new LNode<>(entries.replace(entry, v), size); + MainNode replaceChild(final LNodeEntry entry, final V value) { + return new LNode<>(entries.replace(entry, value), size); } - LNodeEntry get(final Equivalence equiv, final K k) { - return entries.findEntry(equiv, k); + LNodeEntry get(final Equivalence equiv, final K key) { + return entries.findEntry(equiv, key); } LNodeEntries entries() { diff --git a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/LNodeEntries.java b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/LNodeEntries.java index 66cb818640..570205e7a9 100644 --- a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/LNodeEntries.java +++ b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/LNodeEntries.java @@ -18,8 +18,8 @@ package org.opendaylight.yangtools.triemap; import com.google.common.base.VerifyException; /** - * Similar to Scala's ListMap, this is a single-linked list of set of map entries. Aside from the Set contract, this - * class fulfills the requirements for an immutable map entryset. + * Similar to Scala's ListMap, this is a single-linked list of set of map entries. Aside from the java.util.Set + * contract, this class fulfills the requirements for an immutable map entryset. * * @author Robert Varga * @@ -28,8 +28,8 @@ import com.google.common.base.VerifyException; */ abstract class LNodeEntries extends LNodeEntry { private static final class Single extends LNodeEntries { - Single(final K k, final V v) { - super(k, v); + Single(final K key, final V value) { + super(key, value); } @Override @@ -43,12 +43,12 @@ abstract class LNodeEntries extends LNodeEntry { LNodeEntries next; // Used in remove() only - Multiple(final LNodeEntries e) { - this(e.getKey(), e.getValue(), null); + Multiple(final LNodeEntries entry) { + this(entry.getKey(), entry.getValue(), null); } - Multiple(final K k, final V v, final LNodeEntries next) { - super(k, v); + Multiple(final K key, final V value, final LNodeEntries next) { + super(key, value); this.next = next; } @@ -58,8 +58,8 @@ abstract class LNodeEntries extends LNodeEntry { } } - LNodeEntries(final K k, final V v) { - super(k, v); + LNodeEntries(final K key, final V value) { + super(key, value); } static LNodeEntries map(final K k1, final V v1, final K k2, final V v2) { @@ -92,10 +92,10 @@ abstract class LNodeEntries extends LNodeEntry { return new Multiple<>(key, value, this); } - final LNodeEntries replace(final LNodeEntry entry, final V v) { + final LNodeEntries replace(final LNodeEntry entry, final V value) { final LNodeEntries removed; - return (removed = remove(entry)) == null ? new Single<>(entry.getKey(), v) - : new Multiple<>(entry.getKey(), v, removed); + return (removed = remove(entry)) == null ? new Single<>(entry.getKey(), value) + : new Multiple<>(entry.getKey(), value, removed); } final LNodeEntries remove(final LNodeEntry entry) { diff --git a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/MutableEntrySet.java b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/MutableEntrySet.java index 9476186ae5..c9bdca25c6 100644 --- a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/MutableEntrySet.java +++ b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/MutableEntrySet.java @@ -20,8 +20,8 @@ import static com.google.common.base.Preconditions.checkArgument; import java.util.Iterator; import java.util.Map.Entry; -/*** - * Support for EntrySet operations required by the Map interface +/** + * Support for EntrySet operations required by the Map interface. * * @param the type of keys * @param the type of values diff --git a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/MutableIterator.java b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/MutableIterator.java index fdd03bca5e..988be4099a 100644 --- a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/MutableIterator.java +++ b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/MutableIterator.java @@ -56,6 +56,7 @@ final class MutableIterator extends AbstractIterator { * {@link #setValue(Object)} methods cannot guarantee consistency with the base map and may produce surprising * results when the map is concurrently modified, either directly or via another entry/iterator. * + *

* The behavior is similar to what Java 8's ConcurrentHashMap does, which is probably the most consistent handling * of this case without requiring expensive and revalidation. */ @@ -81,7 +82,7 @@ final class MutableIterator extends AbstractIterator { * * @implSpec * This implementation returns the most uptodate value we have observed via this entry. It does not reflect - * concurrent modifications, nor does it throw {@link IllegalStateException} if the entry is removed. + * concurrent modifications, nor does it throw {@link IllegalStateException} if the entry is removed. */ @Override public V getValue() { @@ -93,7 +94,7 @@ final class MutableIterator extends AbstractIterator { * * @implSpec * This implementation returns the most uptodate value we have observed via this entry. It does not reflect - * concurrent modifications, nor does it throw {@link IllegalStateException} if the entry is removed. + * concurrent modifications, nor does it throw {@link IllegalStateException} if the entry is removed. */ @Override public V setValue(final V value) { diff --git a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/MutableTrieMap.java b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/MutableTrieMap.java index ed12e7c2e4..26fbba0816 100644 --- a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/MutableTrieMap.java +++ b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/MutableTrieMap.java @@ -112,7 +112,7 @@ final class MutableTrieMap extends TrieMap { while (true) { final INode r = RDCSS_READ_ROOT(); final MainNode expmain = r.gcasRead(this); - if (RDCSS_ROOT(r, expmain, r.copyToGen (new Gen(), this))) { + if (RDCSS_ROOT(r, expmain, r.copyToGen(new Gen(), this))) { return new ImmutableTrieMap<>(r, equiv()); } @@ -176,28 +176,28 @@ final class MutableTrieMap extends TrieMap { return new INode<>(gen, new CNode<>(gen)); } - private void inserthc(final K k, final int hc, final V v) { + private void inserthc(final K key, final int hc, final V value) { // TODO: this is called from serialization only, which means we should not be observing any races, // hence we should not need to pass down the entire tree, just equality (I think). - final boolean success = RDCSS_READ_ROOT().rec_insert(k, v, hc, 0, null, this); + final boolean success = RDCSS_READ_ROOT().rec_insert(key, value, hc, 0, null, this); Verify.verify(success, "Concurrent modification during serialization of map %s", this); } - private Optional insertifhc(final K k, final int hc, final V v, final Object cond) { + private Optional insertifhc(final K key, final int hc, final V value, final Object cond) { Optional res; do { // Keep looping as long as we do not get a reply - res = RDCSS_READ_ROOT().rec_insertif(k, v, hc, cond, 0, null, this); + res = RDCSS_READ_ROOT().rec_insertif(key, value, hc, cond, 0, null, this); } while (res == null); return res; } - private Optional removehc(final K k, final Object cond, final int hc) { + private Optional removehc(final K key, final Object cond, final int hc) { Optional res; do { // Keep looping as long as we do not get a reply - res = RDCSS_READ_ROOT().rec_remove(k, cond, hc, 0, null, this); + res = RDCSS_READ_ROOT().rec_remove(key, cond, hc, 0, null, this); } while (res == null); return res; @@ -208,7 +208,7 @@ final class MutableTrieMap extends TrieMap { } private boolean RDCSS_ROOT(final INode ov, final MainNode expectedmain, final INode nv) { - final RDCSS_Descriptor desc = new RDCSS_Descriptor<> (ov, expectedmain, nv); + final RDCSS_Descriptor desc = new RDCSS_Descriptor<>(ov, expectedmain, nv); if (CAS_ROOT(ov, desc)) { RDCSS_Complete(false); return /* READ */desc.committed; @@ -266,7 +266,7 @@ final class MutableTrieMap extends TrieMap { volatile boolean committed = false; - RDCSS_Descriptor (final INode old, final MainNode expectedmain, final INode nv) { + RDCSS_Descriptor(final INode old, final MainNode expectedmain, final INode nv) { this.old = old; this.expectedmain = expectedmain; this.nv = nv; diff --git a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/SNode.java b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/SNode.java index 7b1fb773fd..ef3e36a02e 100644 --- a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/SNode.java +++ b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/SNode.java @@ -22,9 +22,9 @@ final class SNode extends BasicNode implements EntryNode { final V v; final int hc; - SNode(final K k, final V v, final int hc) { - this.k = k; - this.v = v; + SNode(final K key, final V value, final int hc) { + this.k = key; + this.v = value; this.hc = hc; } @@ -71,4 +71,4 @@ final class SNode extends BasicNode implements EntryNode { public String toString() { return EntryUtil.string(k, v); } -} \ No newline at end of file +} diff --git a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/TNode.java b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/TNode.java index 9cdfb974d0..7a89e21809 100644 --- a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/TNode.java +++ b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/TNode.java @@ -22,21 +22,21 @@ final class TNode extends MainNode implements EntryNode { final V v; final int hc; - TNode (final K k, final V v, final int hc) { - this.k = k; - this.v = v; + TNode(final K key, final V value, final int hc) { + this.k = key; + this.v = value; this.hc = hc; } - TNode copy () { + TNode copy() { return new TNode<>(k, v, hc); } - TNode copyTombed () { + TNode copyTombed() { return new TNode<>(k, v, hc); } - SNode copyUntombed () { + SNode copyUntombed() { return new SNode<>(k, v, hc); } @@ -81,4 +81,4 @@ final class TNode extends MainNode implements EntryNode { public String toString() { return EntryUtil.string(k, v); } -} \ No newline at end of file +} diff --git a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/TrieMap.java b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/TrieMap.java index a7a92ee1bc..b0261bf0e8 100644 --- a/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/TrieMap.java +++ b/third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/TrieMap.java @@ -26,7 +26,7 @@ import java.util.Optional; import java.util.Set; import java.util.concurrent.ConcurrentMap; -/*** +/** * This is a port of Scala's TrieMap class from the Scala Collections library. This implementation does not support * null keys nor null values. * @@ -58,6 +58,7 @@ public abstract class TrieMap extends AbstractMap implements Concurr * Returns a snapshot of this TrieMap. This operation is lock-free and * linearizable. * + *

* The snapshot is lazily updated - the first time some branch in the * snapshot or this TrieMap are accessed, they are rewritten. This means * that the work of rebuilding both the snapshot and this TrieMap is @@ -70,6 +71,7 @@ public abstract class TrieMap extends AbstractMap implements Concurr * Returns a read-only snapshot of this TrieMap. This operation is lock-free * and linearizable. * + *

* The snapshot is lazily updated - the first time some branch of this * TrieMap are accessed, it is rewritten. The work of creating the snapshot * is thus distributed across subsequent updates and accesses on this @@ -77,6 +79,7 @@ public abstract class TrieMap extends AbstractMap implements Concurr * unlike when calling the `snapshot` method, but the obtained snapshot * cannot be modified. * + *

* This method is used by other methods such as `size` and `iterator`. */ public abstract ImmutableTrieMap immutableSnapshot(); @@ -153,22 +156,23 @@ public abstract class TrieMap extends AbstractMap implements Concurr /** * Return an iterator over a TrieMap. * + *

* If this is a read-only snapshot, it would return a read-only iterator. * + *

* If it is the original TrieMap or a non-readonly snapshot, it would return * an iterator that would allow for updates. * - * @return + * @return An iterator. */ abstract AbstractIterator iterator(); /* internal methods provided for subclasses */ /** - * Return an iterator over a TrieMap. - * This is a read-only iterator. + * Return an iterator over a TrieMap. This is a read-only iterator. * - * @return + * @return A read-only iterator. */ final ImmutableIterator immutableIterator() { return new ImmutableIterator<>(immutableSnapshot()); @@ -179,8 +183,8 @@ public abstract class TrieMap extends AbstractMap implements Concurr return opt.orElse(null); } - final int computeHash(final K k) { - return equiv.hash(k); + final int computeHash(final K key) { + return equiv.hash(key); } final Object writeReplace() throws ObjectStreamException { @@ -213,11 +217,11 @@ public abstract class TrieMap extends AbstractMap implements Concurr /* private implementation methods */ @SuppressWarnings("unchecked") - private V lookuphc(final K k, final int hc) { + private V lookuphc(final K key, final int hc) { Object res; do { // Keep looping as long as RESTART is being indicated - res = RDCSS_READ_ROOT().rec_lookup(k, hc, 0, null, this); + res = RDCSS_READ_ROOT().rec_lookup(key, hc, 0, null, this); } while (res == RESTART); return (V) res; diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestCNodeFlagCollision.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestCNodeFlagCollision.java index 39233deb6a..c99cc21b9e 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestCNodeFlagCollision.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestCNodeFlagCollision.java @@ -23,7 +23,7 @@ import org.junit.Test; public class TestCNodeFlagCollision { @Test - public void testCNodeFlagCollision () { + public void testCNodeFlagCollision() { final Map map = TrieMap.create(); final Integer z15169 = Integer.valueOf(15169); final Integer z28336 = Integer.valueOf(28336); @@ -35,16 +35,16 @@ public class TestCNodeFlagCollision { assertSame(z15169, map.get(z15169)); assertNull(map.get(z28336)); - map.put (z28336, z28336); + map.put(z28336, z28336); assertSame(z15169, map.get(z15169)); assertSame(z28336, map.get(z28336)); - map.remove (z15169); + map.remove(z15169); assertNull(map.get(z15169)); assertSame(z28336, map.get(z28336)); - map.remove (z28336); + map.remove(z28336); assertNull(map.get(z15169)); assertNull(map.get(z28336)); diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestCNodeInsertionIncorrectOrder.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestCNodeInsertionIncorrectOrder.java index 078b4cba40..3c0f354768 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestCNodeInsertionIncorrectOrder.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestCNodeInsertionIncorrectOrder.java @@ -23,7 +23,7 @@ import org.junit.Test; public class TestCNodeInsertionIncorrectOrder { @Test - public void testCNodeInsertionIncorrectOrder () { + public void testCNodeInsertionIncorrectOrder() { final Map map = TrieMap.create(); final Integer z3884 = Integer.valueOf(3884); final Integer z4266 = Integer.valueOf(4266); diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapPutIfAbsent.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapPutIfAbsent.java index c8cbcb5c7b..3c9ba14914 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapPutIfAbsent.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapPutIfAbsent.java @@ -24,14 +24,14 @@ import java.util.concurrent.ConcurrentMap; import org.junit.Test; public class TestConcurrentMapPutIfAbsent { - private static final int COUNT = 50*1000; + private static final int COUNT = 50 * 1000; @Test - public void testConcurrentMapPutIfAbsent () { + public void testConcurrentMapPutIfAbsent() { final ConcurrentMap map = TrieMap.create(); for (int i = 0; i < COUNT; i++) { - assertNull(map.putIfAbsent (i, i)); + assertNull(map.putIfAbsent(i, i)); assertEquals(Integer.valueOf(i), map.putIfAbsent(i, i)); } } diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapRemove.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapRemove.java index 0c7d4248f5..b4b9001580 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapRemove.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapRemove.java @@ -24,10 +24,10 @@ import java.util.concurrent.ConcurrentMap; import org.junit.Test; public class TestConcurrentMapRemove { - private static final int COUNT = 50*1000; + private static final int COUNT = 50 * 1000; @Test - public void testConcurrentMapRemove () { + public void testConcurrentMapRemove() { final ConcurrentMap map = TrieMap.create(); for (int i = 128; i < COUNT; i++) { diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapReplace.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapReplace.java index 6299ba063d..fe09e1acf9 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapReplace.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapReplace.java @@ -25,10 +25,10 @@ import java.util.concurrent.ConcurrentMap; import org.junit.Test; public class TestConcurrentMapReplace { - private static final int COUNT = 50*1000; + private static final int COUNT = 50 * 1000; @Test - public void testConcurrentMapReplace () { + public void testConcurrentMapReplace() { final ConcurrentMap map = TrieMap.create(); for (int i = 0; i < COUNT; i++) { diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestDelete.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestDelete.java index 29454cdae2..23b70873fc 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestDelete.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestDelete.java @@ -52,7 +52,7 @@ public class TestDelete { } @Test - public void testDelete () { + public void testDelete() { final TrieMap bt = TrieMap.create(); for (int i = 0; i < 10000; i++) { @@ -71,7 +71,7 @@ public class TestDelete { assertNull(lookup); } - bt.toString (); + bt.toString(); } /** @@ -92,12 +92,12 @@ public class TestDelete { } } - private static void checkAddInsert (final TrieMap bt, final int k) { + private static void checkAddInsert(final TrieMap bt, final int k) { final Integer v = Integer.valueOf(k); - bt.remove (v); + bt.remove(v); Integer foundV = bt.get(v); assertNull(foundV); - assertNull(bt.put (v, v)); + assertNull(bt.put(v, v)); foundV = bt.get(v); assertEquals(v, foundV); diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisions.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisions.java index f866673105..6884911075 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisions.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisions.java @@ -23,7 +23,7 @@ import org.junit.Test; public class TestHashCollisions { @Test - public void testHashCollisions () { + public void testHashCollisions() { final TrieMap bt = TrieMap.create(); insertStrings(bt); @@ -77,7 +77,7 @@ public class TestHashCollisions { removeChars(bt); } - private static void insertChars (final TrieMap bt) { + private static void insertChars(final TrieMap bt) { assertNull(bt.put('a', 'a')); assertNull(bt.put('b', 'b')); assertNull(bt.put('c', 'c')); @@ -91,7 +91,7 @@ public class TestHashCollisions { assertEquals('e', bt.put('e', 'e')); } - private static void insertStrings (final TrieMap bt) { + private static void insertStrings(final TrieMap bt) { assertNull(bt.put("a", "a")); assertNull(bt.put("b", "b")); assertNull(bt.put("c", "c")); @@ -105,7 +105,7 @@ public class TestHashCollisions { assertEquals("e", bt.put("e", "e")); } - private static void insertBytes (final TrieMap bt) { + private static void insertBytes(final TrieMap bt) { for (byte i = 0; i < 128 && i >= 0; i++) { final Byte bigB = Byte.valueOf(i); assertNull(bt.put(bigB, bigB)); @@ -113,7 +113,7 @@ public class TestHashCollisions { } } - private static void insertInts (final TrieMap bt) { + private static void insertInts(final TrieMap bt) { for (int i = 0; i < 128; i++) { final Integer bigI = Integer.valueOf(i); assertNull(bt.put(bigI, bigI)); @@ -121,7 +121,7 @@ public class TestHashCollisions { } } - private static void removeChars (final TrieMap bt) { + private static void removeChars(final TrieMap bt) { assertNotNull(bt.get('a')); assertNotNull(bt.get('b')); assertNotNull(bt.get('c')); @@ -147,7 +147,7 @@ public class TestHashCollisions { assertNull(bt.get('e')); } - private static void removeStrings (final TrieMap bt) { + private static void removeStrings(final TrieMap bt) { assertNotNull(bt.get("a")); assertNotNull(bt.get("b")); assertNotNull(bt.get("c")); @@ -173,7 +173,7 @@ public class TestHashCollisions { assertNull(bt.get("e")); } - private static void removeInts (final TrieMap bt) { + private static void removeInts(final TrieMap bt) { for (int i = 0; i < 128; i++) { final Integer bigI = Integer.valueOf(i); assertNotNull(bt.get(bigI)); @@ -183,7 +183,7 @@ public class TestHashCollisions { } } - private static void removeBytes (final TrieMap bt) { + private static void removeBytes(final TrieMap bt) { for (byte i = 0; i < 128 && i >= 0; i++) { final Byte bigB = Byte.valueOf(i); assertNotNull(bt.get(bigB)); diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisionsRemoveIterator.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisionsRemoveIterator.java index 2b5f5f21d2..b564770dff 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisionsRemoveIterator.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisionsRemoveIterator.java @@ -29,7 +29,7 @@ public class TestHashCollisionsRemoveIterator { private static final int COUNT = 50000; @Test - public void testHashCollisionsRemoveIterator () { + public void testHashCollisionsRemoveIterator() { final Map bt = TrieMap.create(); for (int j = 0; j < COUNT; j++) { bt.put(Integer.valueOf(j), Integer.valueOf(j)); diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestInsert.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestInsert.java index aefaf1d6ee..9a4bc7175a 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestInsert.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestInsert.java @@ -22,7 +22,7 @@ import org.junit.Test; public class TestInsert { @Test - public void testInsert () { + public void testInsert() { final TrieMap bt = TrieMap.create(); assertNull(bt.put("a", "a")); assertNull(bt.put("b", "b")); @@ -31,7 +31,7 @@ public class TestInsert { assertNull(bt.put("e", "b")); for (int i = 0; i < 10000; i++) { - assertNull(bt.put(Integer.valueOf (i), Integer.valueOf(i))); + assertNull(bt.put(Integer.valueOf(i), Integer.valueOf(i))); final Object lookup = bt.get(Integer.valueOf(i)); assertEquals(Integer.valueOf(i), lookup); } diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMapIterator.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMapIterator.java index 764de0ae17..a0252d5914 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMapIterator.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMapIterator.java @@ -35,7 +35,7 @@ public class TestMapIterator { public void testMapIterator() { final Random random = new Random(); - for (int i = 0; i < 60 * 1000; i+= 400 + random.nextInt(400)) { + for (int i = 0; i < 60 * 1000; i += 400 + random.nextInt(400)) { final Map bt = TrieMap.create(); for (int j = 0; j < i; j++) { assertNull(bt.put(Integer.valueOf(j), Integer.valueOf(j))); @@ -59,21 +59,21 @@ public class TestMapIterator { for (Entry e : bt.entrySet()) { assertSame(e.getValue(), bt.get(e.getKey())); e.setValue(e.getValue() + 1); - assertEquals((Object)e.getValue(), e.getKey () + 1); + assertEquals((Object)e.getValue(), e.getKey() + 1); assertEquals(e.getValue(), bt.get(e.getKey())); e.setValue(e.getValue() - 1); } final Iterator it = bt.keySet().iterator(); - while(it.hasNext()) { - final Integer k = it.next (); + while (it.hasNext()) { + final Integer k = it.next(); assertTrue(bt.containsKey(k)); it.remove(); assertFalse(bt.containsKey(k)); } - assertEquals(0, bt.size ()); - assertTrue(bt.isEmpty ()); + assertEquals(0, bt.size()); + assertTrue(bt.isEmpty()); } } @@ -81,7 +81,7 @@ public class TestMapIterator { public void testMapImmutableIterator() { final Random random = new Random(); - for (int i = 0; i < 60 * 1000; i+= 400 + random.nextInt(400)) { + for (int i = 0; i < 60 * 1000; i += 400 + random.nextInt(400)) { final Map bt = TrieMap.create(); for (int j = 0; j < i; j++) { assertNull(bt.put(Integer.valueOf(j), Integer.valueOf(j))); diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadAddDelete.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadAddDelete.java index 71034c7a0c..b575e915dc 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadAddDelete.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadAddDelete.java @@ -31,7 +31,7 @@ public class TestMultiThreadAddDelete { private static final int COUNT = 50 * 1000; @Test - public void testMultiThreadAddDelete () throws InterruptedException { + public void testMultiThreadAddDelete() throws InterruptedException { for (int j = 0; j < RETRIES; j++) { final Map bt = TrieMap.create(); @@ -47,7 +47,7 @@ public class TestMultiThreadAddDelete { } }); } - es.shutdown (); + es.shutdown(); es.awaitTermination(5, TimeUnit.MINUTES); } @@ -58,49 +58,45 @@ public class TestMultiThreadAddDelete { final ExecutorService es = Executors.newFixedThreadPool(N_THREADS); for (int i = 0; i < N_THREADS; i++) { final int threadNo = i; - es.execute (() -> { + es.execute(() -> { for (int k = 0; k < COUNT; k++) { if (k % N_THREADS == threadNo) { - bt.remove (Integer.valueOf (k)); + bt.remove(Integer.valueOf(k)); } } }); } - es.shutdown (); + es.shutdown(); es.awaitTermination(5, TimeUnit.MINUTES); } - assertEquals(0, bt.size ()); + assertEquals(0, bt.size()); assertTrue(bt.isEmpty()); { - final ExecutorService es = Executors.newFixedThreadPool (N_THREADS); + final ExecutorService es = Executors.newFixedThreadPool(N_THREADS); for (int i = 0; i < N_THREADS; i++) { final int threadNo = i; - es.execute (new Runnable () { + es.execute(new Runnable() { @Override - public void run () { + public void run() { for (int j = 0; j < COUNT; j++) { if (j % N_THREADS == threadNo) { - try { - bt.put (Integer.valueOf (j), Integer.valueOf (j)); - if (!bt.containsKey (Integer.valueOf (j))) { - System.out.println (j); - } - bt.remove (Integer.valueOf (j)); - if (bt.containsKey (Integer.valueOf (j))) { - System.out.println (-j); - } - } catch (Throwable t) { - t.printStackTrace (); + bt.put(Integer.valueOf(j), Integer.valueOf(j)); + if (!bt.containsKey(Integer.valueOf(j))) { + System.out.println(j); + } + bt.remove(Integer.valueOf(j)); + if (bt.containsKey(Integer.valueOf(j))) { + System.out.println(-j); } } } } }); } - es.shutdown (); + es.shutdown(); es.awaitTermination(5, TimeUnit.MINUTES); } diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadInserts.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadInserts.java index 019240f69d..d113c6a0f9 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadInserts.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadInserts.java @@ -24,22 +24,22 @@ import org.junit.Test; public class TestMultiThreadInserts { @Test - public void testMultiThreadInserts () throws InterruptedException{ + public void testMultiThreadInserts() throws InterruptedException { final int nThreads = 2; final ExecutorService es = Executors.newFixedThreadPool(nThreads); final TrieMap bt = TrieMap.create(); for (int i = 0; i < nThreads; i++) { final int threadNo = i; - es.execute (() -> { + es.execute(() -> { for (int j = 0; j < 500 * 1000; j++) { if (j % nThreads == threadNo) { - bt.put (Integer.valueOf(j), Integer.valueOf(j)); + bt.put(Integer.valueOf(j), Integer.valueOf(j)); } } }); } - es.shutdown (); + es.shutdown(); es.awaitTermination(5, TimeUnit.MINUTES); for (int j = 0; j < 500 * 1000; j++) { diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadMapIterator.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadMapIterator.java index e7f91fed54..1962882f86 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadMapIterator.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadMapIterator.java @@ -33,15 +33,15 @@ public class TestMultiThreadMapIterator { private static final int NTHREADS = 7; @Test - public void testMultiThreadMapIterator () throws InterruptedException { + public void testMultiThreadMapIterator() throws InterruptedException { final Map bt = TrieMap.create(); for (int j = 0; j < 50 * 1000; j++) { for (final Object o : getObjects(j)) { - bt.put (o, o); + bt.put(o, o); } } - // System.out.println ("Size of initialized map is " + bt.size ()); + // System.out.println("Size of initialized map is " + bt.size()); int count = 0; { final ExecutorService es = Executors.newFixedThreadPool(NTHREADS); @@ -73,19 +73,19 @@ public class TestMultiThreadMapIterator { final ExecutorService es = Executors.newFixedThreadPool(NTHREADS); for (int i = 0; i < NTHREADS; i++) { final int threadNo = i; - es.execute (() -> { - for (final Iterator> it = bt.entrySet ().iterator(); it.hasNext();) { + es.execute(() -> { + for (final Iterator> it = bt.entrySet().iterator(); it.hasNext();) { final Entry e = it.next(); - Object key = e.getKey (); - if (accepts (threadNo, NTHREADS, key)) { - if (null == bt.get (key)) { - // System.out.println (key); + Object key = e.getKey(); + if (accepts(threadNo, NTHREADS, key)) { + if (null == bt.get(key)) { + // System.out.println(key); } it.remove(); - if (null != bt.get (key)) { - // System.out.println (key); + if (null != bt.get(key)) { + // System.out.println(key); } - removed.put (key, key); + removed.put(key, key); } } }); @@ -95,27 +95,27 @@ public class TestMultiThreadMapIterator { es.awaitTermination(5, TimeUnit.MINUTES); } - count = 0; - for (final Object value : bt.keySet ()) { - value.toString (); - count++; - } - for (final Object o : bt.keySet ()) { - if (!removed.contains (bt.get (o))) { - System.out.println ("Not removed: " + o); - } - } - assertEquals(0, count); - assertEquals(0, bt.size ()); - assertTrue(bt.isEmpty ()); + count = 0; + for (final Object value : bt.keySet()) { + value.toString(); + count++; + } + for (final Object o : bt.keySet()) { + if (!removed.contains(bt.get(o))) { + System.out.println("Not removed: " + o); + } + } + assertEquals(0, count); + assertEquals(0, bt.size()); + assertTrue(bt.isEmpty()); } - protected static boolean accepts (final int threadNo, final int nThreads, final Object key) { + protected static boolean accepts(final int threadNo, final int nrThreads, final Object key) { final int val = getKeyValue(key); - return val >= 0 ? val % nThreads == threadNo : false; + return val >= 0 ? val % nrThreads == threadNo : false; } - private static int getKeyValue (final Object key) { + private static int getKeyValue(final Object key) { if (key instanceof Integer) { return ((Integer) key).intValue(); } else if (key instanceof Character) { diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestReadOnlyAndUpdatableIterators.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestReadOnlyAndUpdatableIterators.java index fd31f798d4..4ac015a829 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestReadOnlyAndUpdatableIterators.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestReadOnlyAndUpdatableIterators.java @@ -23,11 +23,9 @@ import java.util.Map.Entry; import org.junit.Before; import org.junit.Test; -/*** - * +/** * Test that read-only iterators do not allow for any updates. * Test that non read-only iterators allow for updates. - * */ public class TestReadOnlyAndUpdatableIterators { private static final int MAP_SIZE = 200; @@ -82,9 +80,9 @@ public class TestReadOnlyAndUpdatableIterators { } @Test - public void testIterator () { + public void testIterator() { Iterator> it = bt.iterator(); - it.next().setValue (0); + it.next().setValue(0); it.remove(); // All changes are done on the original map @@ -92,7 +90,7 @@ public class TestReadOnlyAndUpdatableIterators { } @Test - public void testSnapshotIterator () { + public void testSnapshotIterator() { TrieMap snapshot = bt.mutableSnapshot(); Iterator> it = snapshot.iterator(); it.next().setValue(0); @@ -100,8 +98,8 @@ public class TestReadOnlyAndUpdatableIterators { // All changes are done on the snapshot, not on the original map // Map size should remain unchanged - assertEquals(MAP_SIZE, bt.size ()); + assertEquals(MAP_SIZE, bt.size()); // snapshot size was changed - assertEquals(MAP_SIZE-1, snapshot.size ()); + assertEquals(MAP_SIZE - 1, snapshot.size()); } } -- 2.36.6