From 6839b55ce7e38b31c0fdf888cba2c0804ce9c3e8 Mon Sep 17 00:00:00 2001 From: Dave Marion Date: Fri, 5 Dec 2025 20:57:38 +0000 Subject: [PATCH 1/4] Modify LoadPlanTest to not compare serialized json for equality. Related to #5961 --- .../apache/accumulo/core/data/LoadPlan.java | 42 +++++++++++++++++++ .../accumulo/core/data/LoadPlanTest.java | 5 ++- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/apache/accumulo/core/data/LoadPlan.java b/core/src/main/java/org/apache/accumulo/core/data/LoadPlan.java index 523c2b648bf..180c930a98e 100644 --- a/core/src/main/java/org/apache/accumulo/core/data/LoadPlan.java +++ b/core/src/main/java/org/apache/accumulo/core/data/LoadPlan.java @@ -162,6 +162,30 @@ public byte[] getEndRow() { public RangeType getRangeType() { return rangeType; } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + Arrays.hashCode(endRow); + result = prime * result + Arrays.hashCode(startRow); + result = prime * result + Objects.hash(fileName, rangeType); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Destination other = (Destination) obj; + return Objects.equals(fileName, other.fileName) && rangeType == other.rangeType + && Arrays.equals(endRow, other.endRow) && Arrays.equals(startRow, other.startRow); + } + } private LoadPlan(List destinations) { @@ -509,4 +533,22 @@ public static LoadPlan compute(URI file, Map properties, return builder.build(); } } + + @Override + public int hashCode() { + return Objects.hash(destinations); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + LoadPlan other = (LoadPlan) obj; + return Objects.equals(destinations, other.destinations); + } + } diff --git a/core/src/test/java/org/apache/accumulo/core/data/LoadPlanTest.java b/core/src/test/java/org/apache/accumulo/core/data/LoadPlanTest.java index 9e9d08a60df..9c75c6a6774 100644 --- a/core/src/test/java/org/apache/accumulo/core/data/LoadPlanTest.java +++ b/core/src/test/java/org/apache/accumulo/core/data/LoadPlanTest.java @@ -122,7 +122,7 @@ public void testJson() { builder.loadFileTo("f2.rf", RangeType.FILE, "004", "007"); builder.loadFileTo("f1.rf", RangeType.TABLE, "005", "006"); builder.loadFileTo("f3.rf", RangeType.TABLE, new byte[] {0, 1, 2, 3, 4, 5, 6}, null); - String json = builder.build().toJson(); + LoadPlan actual = builder.build(); String b64003 = Base64.getUrlEncoder().encodeToString("003".getBytes(UTF_8)); String b64004 = Base64.getUrlEncoder().encodeToString("004".getBytes(UTF_8)); @@ -137,7 +137,8 @@ public void testJson() { + "','endRow':'" + b64006 + "','rangeType':'TABLE'},{'fileName':'f3.rf','startRow':'" + b64binary + "','endRow':null,'rangeType':'TABLE'}]}"; - assertEquals(expected.replace("'", "\""), json); + LoadPlan expectedLoadPlan = LoadPlan.fromJson(expected); + assertEquals(expectedLoadPlan, actual); } @Test From 8ff8fe9bb7709180a894e0f662984699af6e8c8f Mon Sep 17 00:00:00 2001 From: Dave Marion Date: Fri, 5 Dec 2025 21:28:46 +0000 Subject: [PATCH 2/4] Fix formatting --- .../apache/accumulo/core/data/LoadPlan.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/org/apache/accumulo/core/data/LoadPlan.java b/core/src/main/java/org/apache/accumulo/core/data/LoadPlan.java index 180c930a98e..abfa774d32b 100644 --- a/core/src/main/java/org/apache/accumulo/core/data/LoadPlan.java +++ b/core/src/main/java/org/apache/accumulo/core/data/LoadPlan.java @@ -175,12 +175,15 @@ public int hashCode() { @Override public boolean equals(Object obj) { - if (this == obj) + if (this == obj) { return true; - if (obj == null) + } + if (obj == null) { return false; - if (getClass() != obj.getClass()) + } + if (getClass() != obj.getClass()) { return false; + } Destination other = (Destination) obj; return Objects.equals(fileName, other.fileName) && rangeType == other.rangeType && Arrays.equals(endRow, other.endRow) && Arrays.equals(startRow, other.startRow); @@ -541,12 +544,15 @@ public int hashCode() { @Override public boolean equals(Object obj) { - if (this == obj) + if (this == obj) { return true; - if (obj == null) + } + if (obj == null) { return false; - if (getClass() != obj.getClass()) + } + if (getClass() != obj.getClass()) { return false; + } LoadPlan other = (LoadPlan) obj; return Objects.equals(destinations, other.destinations); } From ab54619f55711323f877e94faef1ee834167f8fe Mon Sep 17 00:00:00 2001 From: Dave Marion Date: Tue, 16 Dec 2025 11:40:41 -0500 Subject: [PATCH 3/4] Update core/src/main/java/org/apache/accumulo/core/data/LoadPlan.java Co-authored-by: Keith Turner --- .../main/java/org/apache/accumulo/core/data/LoadPlan.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/core/src/main/java/org/apache/accumulo/core/data/LoadPlan.java b/core/src/main/java/org/apache/accumulo/core/data/LoadPlan.java index abfa774d32b..e4784259887 100644 --- a/core/src/main/java/org/apache/accumulo/core/data/LoadPlan.java +++ b/core/src/main/java/org/apache/accumulo/core/data/LoadPlan.java @@ -165,12 +165,7 @@ public RangeType getRangeType() { @Override public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + Arrays.hashCode(endRow); - result = prime * result + Arrays.hashCode(startRow); - result = prime * result + Objects.hash(fileName, rangeType); - return result; + return Objects.hash(Arrays.hashCode(endRow), Arrays.hashCode(startRow), fileName, rangeType); } @Override From bf3b1f5f9d7cbf8a87194803c8a0602f2825b3fb Mon Sep 17 00:00:00 2001 From: Dave Marion Date: Tue, 16 Dec 2025 16:51:22 +0000 Subject: [PATCH 4/4] Fix formatting --- core/src/main/java/org/apache/accumulo/core/data/LoadPlan.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/org/apache/accumulo/core/data/LoadPlan.java b/core/src/main/java/org/apache/accumulo/core/data/LoadPlan.java index e4784259887..1f21a919f4a 100644 --- a/core/src/main/java/org/apache/accumulo/core/data/LoadPlan.java +++ b/core/src/main/java/org/apache/accumulo/core/data/LoadPlan.java @@ -165,7 +165,7 @@ public RangeType getRangeType() { @Override public int hashCode() { - return Objects.hash(Arrays.hashCode(endRow), Arrays.hashCode(startRow), fileName, rangeType); + return Objects.hash(Arrays.hashCode(endRow), Arrays.hashCode(startRow), fileName, rangeType); } @Override