diff --git a/internal-api/src/main/java/datadog/trace/util/Hashtable.java b/internal-api/src/main/java/datadog/trace/util/Hashtable.java index 84db05b9f01..cc514ff445b 100644 --- a/internal-api/src/main/java/datadog/trace/util/Hashtable.java +++ b/internal-api/src/main/java/datadog/trace/util/Hashtable.java @@ -265,6 +265,16 @@ protected Entry(K1 key1, K2 key2) { this.key2 = key2; } + /** The first key part this entry was created with. */ + public K1 key1() { + return this.key1; + } + + /** The second key part this entry was created with. */ + public K2 key2() { + return this.key2; + } + public boolean matches(K1 key1, K2 key2) { return Objects.equals(this.key1, key1) && Objects.equals(this.key2, key2); } diff --git a/internal-api/src/test/java/datadog/trace/util/HashtableD2Test.java b/internal-api/src/test/java/datadog/trace/util/HashtableD2Test.java index 50da832395b..fb621f89482 100644 --- a/internal-api/src/test/java/datadog/trace/util/HashtableD2Test.java +++ b/internal-api/src/test/java/datadog/trace/util/HashtableD2Test.java @@ -137,6 +137,13 @@ void entryMatchesFalseWhenKey2Differs() { assertFalse(entry.matches("a", 2)); } + @Test + void keyAccessorsExposeConstructionKeys() { + PairEntry entry = new PairEntry("a", 1, 100); + assertEquals("a", entry.key1()); + assertEquals(1, entry.key2()); + } + @Test void entryHashIsConsistentForSameKeys() { long h1 = Hashtable.D2.Entry.hash("x", 42);