From fce8963509fa93b86654e6ae61fb7da2d04d74cf Mon Sep 17 00:00:00 2001 From: mumbler6 Date: Thu, 5 Sep 2024 13:14:35 -0500 Subject: [PATCH 1/2] Replaced HashSet with LinkedHashSet for deterministic ordering in IsIn --- .../uk/gov/gchq/koryphe/impl/predicate/IsIn.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/uk/gov/gchq/koryphe/impl/predicate/IsIn.java b/core/src/main/java/uk/gov/gchq/koryphe/impl/predicate/IsIn.java index e5300b63e..a47814202 100644 --- a/core/src/main/java/uk/gov/gchq/koryphe/impl/predicate/IsIn.java +++ b/core/src/main/java/uk/gov/gchq/koryphe/impl/predicate/IsIn.java @@ -30,7 +30,8 @@ import java.util.Arrays; import java.util.Collection; -import java.util.HashSet; +import java.util.Collections; +import java.util.LinkedHashSet; import java.util.Set; /** @@ -47,11 +48,12 @@ public IsIn() { } public IsIn(final Collection controlData) { - this.allowedValues = new HashSet<>(controlData); + this.allowedValues = new LinkedHashSet<>(controlData); } public IsIn(final Object... controlData) { - this.allowedValues = Sets.newHashSet(controlData); + this.allowedValues = Sets.newLinkedHashSet(); + Collections.addAll(this.allowedValues, controlData); } @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT) @@ -64,9 +66,9 @@ public Object[] getAllowedValuesArray() { @JsonProperty("values") public void setAllowedValues(final Object[] allowedValuesArray) { if (null != allowedValuesArray) { - allowedValues = new HashSet<>(Arrays.asList(allowedValuesArray)); + allowedValues = new LinkedHashSet<>(Arrays.asList(allowedValuesArray)); } else { - allowedValues = new HashSet<>(0); + allowedValues = new LinkedHashSet<>(0); } } From 27887d6146bc99139201bfb26169c9bf1d28550e Mon Sep 17 00:00:00 2001 From: Benjamin Guan <47118893+mumbler6@users.noreply.github.com> Date: Fri, 3 Jan 2025 20:05:37 -0500 Subject: [PATCH 2/2] Update core/src/main/java/uk/gov/gchq/koryphe/impl/predicate/IsIn.java Co-authored-by: GCHQDeveloper314 <94527357+GCHQDeveloper314@users.noreply.github.com> --- .../src/main/java/uk/gov/gchq/koryphe/impl/predicate/IsIn.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/src/main/java/uk/gov/gchq/koryphe/impl/predicate/IsIn.java b/core/src/main/java/uk/gov/gchq/koryphe/impl/predicate/IsIn.java index a47814202..d8d58c047 100644 --- a/core/src/main/java/uk/gov/gchq/koryphe/impl/predicate/IsIn.java +++ b/core/src/main/java/uk/gov/gchq/koryphe/impl/predicate/IsIn.java @@ -52,8 +52,7 @@ public IsIn(final Collection controlData) { } public IsIn(final Object... controlData) { - this.allowedValues = Sets.newLinkedHashSet(); - Collections.addAll(this.allowedValues, controlData); + this.allowedValues = new LinkedHashSet<>(Arrays.asList(controlData)); } @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT)