From ea57597e789f5574a1c6cc744e60dade760a2026 Mon Sep 17 00:00:00 2001 From: Shao Date: Sun, 5 Sep 2021 09:56:35 -0500 Subject: [PATCH 1/4] fix map in deterministic order --- .../org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cayenne-server/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java b/cayenne-server/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java index 1baaa276c3..0d2b7250e2 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java @@ -20,7 +20,7 @@ import java.util.ArrayList; import java.util.Arrays; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.regex.Pattern; @@ -108,7 +108,7 @@ protected void appendParameters(StringBuilder buffer, String label, ParameterBin @SuppressWarnings("unchecked") private Map> collectBindings(ParameterBinding[] bindings) { - Map> bindingsMap = new HashMap<>(); + Map> bindingsMap = new LinkedHashMap<>(); String key = null; String value; From a67ba58ef4f3250e41de082959296b5cfedc1b73 Mon Sep 17 00:00:00 2001 From: Shao Date: Wed, 17 Nov 2021 19:12:10 -0600 Subject: [PATCH 2/4] fix: guarantee test correctness during map entry iteration --- .../test/java/org/apache/cayenne/util/WeakValueMapTest.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java b/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java index 74cca8c044..63c74299cc 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java @@ -216,9 +216,7 @@ public void testConcurrentModification() { assertEquals(4, map.size()); for(Map.Entry entry : map.entrySet()) { - if("key_2".equals(entry.getKey())) { - map.remove("key_2"); - } + map.remove(entry.getKey()); } } From b43bd1c021ce958f599485302d19817e2b9bbee0 Mon Sep 17 00:00:00 2001 From: Shao Date: Thu, 18 Nov 2021 14:02:42 -0600 Subject: [PATCH 3/4] make loop iteration cleaner --- .../test/java/org/apache/cayenne/util/WeakValueMapTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java b/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java index 63c74299cc..0cdc0cec76 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java @@ -215,10 +215,10 @@ public void testConcurrentModification() { map.put("key_4", 321); assertEquals(4, map.size()); - for(Map.Entry entry : map.entrySet()) { - map.remove(entry.getKey()); + for (String key : map.keySet()) { + map.remove(key); } - } +} @Test(expected = UnsupportedOperationException.class) public void testUnsupportedEntryIteratorRemoval() { From 6c6420a6b4505d9da9420e81021aa76b28c9907e Mon Sep 17 00:00:00 2001 From: Shao Date: Thu, 18 Nov 2021 14:05:48 -0600 Subject: [PATCH 4/4] revert previous change --- .../org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cayenne-server/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java b/cayenne-server/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java index 0d2b7250e2..1baaa276c3 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java @@ -20,7 +20,7 @@ import java.util.ArrayList; import java.util.Arrays; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.regex.Pattern; @@ -108,7 +108,7 @@ protected void appendParameters(StringBuilder buffer, String label, ParameterBin @SuppressWarnings("unchecked") private Map> collectBindings(ParameterBinding[] bindings) { - Map> bindingsMap = new LinkedHashMap<>(); + Map> bindingsMap = new HashMap<>(); String key = null; String value;