diff --git a/accord-core/src/main/java/accord/primitives/RangeDeps.java b/accord-core/src/main/java/accord/primitives/RangeDeps.java index 14c4bef62..f939d2640 100644 --- a/accord-core/src/main/java/accord/primitives/RangeDeps.java +++ b/accord-core/src/main/java/accord/primitives/RangeDeps.java @@ -149,6 +149,11 @@ private RangeDeps(Range[] ranges, TxnId[] txnIds, int[] rangesToTxnIds, int[] tx this.txnIdsToRanges = txnIdsToRanges; } + public void forEach(RoutableKey key, Consumer forEach) + { + forEach(key, Consumer::accept, forEach, 0, null); + } + @Inline public int forEach(RoutableKey key, IndexedQuadConsumer forEachScanOrCheckpoint, IndexedRangeQuadConsumer forEachRange, P1 p1, P2 p2, P3 p3, P4 p4, int minIndex) { @@ -270,7 +275,7 @@ public void forEachUniqueTxnId(RoutableKey key, P1 p1, BiConsumer forEach) { - forEach(range, forEach, 0, null); + forEach(range, Consumer::accept, forEach, 0, null); } /** diff --git a/accord-core/src/test/java/accord/primitives/RangeDepsTest.java b/accord-core/src/test/java/accord/primitives/RangeDepsTest.java index 2a41b22e6..bbb9356b9 100644 --- a/accord-core/src/test/java/accord/primitives/RangeDepsTest.java +++ b/accord-core/src/test/java/accord/primitives/RangeDepsTest.java @@ -27,6 +27,7 @@ import java.util.*; import static accord.primitives.Txn.Kind.Write; +import static org.assertj.core.api.Assertions.assertThat; public class RangeDepsTest { @@ -96,8 +97,12 @@ Set canonicalOverlaps(Range range) Set testOverlaps(Range range) { + List uniq = new ArrayList<>(); + test.forEachUniqueTxnId(range, uniq::add); Set set = new TreeSet<>(); - test.forEachUniqueTxnId(range, set::add); + test.forEach(range, set::add); + assertThat(uniq).doesNotHaveDuplicates() + .containsExactlyInAnyOrderElementsOf(set); return set; } @@ -114,8 +119,12 @@ Set canonicalOverlaps(RoutableKey key) Set testOverlaps(RoutableKey key) { + List uniq = new ArrayList<>(); + test.forEachUniqueTxnId(key, uniq::add); Set set = new TreeSet<>(); - test.forEachUniqueTxnId(key, set::add); + test.forEach(key, set::add); + assertThat(uniq).doesNotHaveDuplicates() + .containsExactlyInAnyOrderElementsOf(set); return set; }