From 2118bcea540ce4e41fd3a3ceaced521cf4da6080 Mon Sep 17 00:00:00 2001 From: Jack Conradson Date: Wed, 9 Apr 2025 13:14:33 -0700 Subject: [PATCH 1/6] fix toString for DynamicMap --- .../java/org/elasticsearch/script/DynamicMap.java | 13 ++++++++++++- .../java/org/elasticsearch/script/ScriptTests.java | 7 +++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/script/DynamicMap.java b/server/src/main/java/org/elasticsearch/script/DynamicMap.java index 99c4f3eb099e3..5027a52043451 100644 --- a/server/src/main/java/org/elasticsearch/script/DynamicMap.java +++ b/server/src/main/java/org/elasticsearch/script/DynamicMap.java @@ -98,6 +98,17 @@ public Set> entrySet() { @Override public String toString() { - return delegate.toString(); + StringBuilder sb = new StringBuilder("DynamicMap ["); + int count = 0; + for (Map.Entry entry : entrySet()) { + sb.append(entry.getKey()); + sb.append(": "); + sb.append(entry.getValue()); + if (++count < size()) { + sb.append(", "); + } + } + sb.append("]"); + return sb.toString(); } } diff --git a/server/src/test/java/org/elasticsearch/script/ScriptTests.java b/server/src/test/java/org/elasticsearch/script/ScriptTests.java index 5ff91bff68a9b..a37010b2cdf52 100644 --- a/server/src/test/java/org/elasticsearch/script/ScriptTests.java +++ b/server/src/test/java/org/elasticsearch/script/ScriptTests.java @@ -29,7 +29,11 @@ import java.util.HashMap; import java.util.Map; +import static org.hamcrest.Matchers.both; +import static org.hamcrest.Matchers.contains; +import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.is; public class ScriptTests extends ESTestCase { @@ -192,7 +196,6 @@ public void testDynamicMapToString() { map.put("long", 1L); map.put("string", "value"); DynamicMap dm = new DynamicMap(map, Collections.emptyMap()); - assertTrue(dm.toString().contains("string=value")); - assertTrue(dm.toString().contains("long=1")); + assertThat(dm.toString(), both(containsString("long: 1")).and(containsString("string: value"))); } } From 4cdfc6e4d00b7213bca96d0e6db1a6e67cc58ca2 Mon Sep 17 00:00:00 2001 From: Jack Conradson Date: Wed, 9 Apr 2025 13:22:24 -0700 Subject: [PATCH 2/6] Update docs/changelog/126562.yaml --- docs/changelog/126562.yaml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 docs/changelog/126562.yaml diff --git a/docs/changelog/126562.yaml b/docs/changelog/126562.yaml new file mode 100644 index 0000000000000..a02ae0aacd018 --- /dev/null +++ b/docs/changelog/126562.yaml @@ -0,0 +1,6 @@ +pr: 126562 +summary: Add a custom `toString` to `DynamicMap` +area: Infra/Scripting +type: bug +issues: + - 70262 From 44fd72e0d0338e254d9812dc0fb90aa7ef5291c3 Mon Sep 17 00:00:00 2001 From: elasticsearchmachine Date: Wed, 9 Apr 2025 20:32:14 +0000 Subject: [PATCH 3/6] [CI] Auto commit changes from spotless --- server/src/test/java/org/elasticsearch/script/ScriptTests.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/server/src/test/java/org/elasticsearch/script/ScriptTests.java b/server/src/test/java/org/elasticsearch/script/ScriptTests.java index a37010b2cdf52..143f0082ae00a 100644 --- a/server/src/test/java/org/elasticsearch/script/ScriptTests.java +++ b/server/src/test/java/org/elasticsearch/script/ScriptTests.java @@ -30,10 +30,8 @@ import java.util.Map; import static org.hamcrest.Matchers.both; -import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.is; public class ScriptTests extends ESTestCase { From 24d06efcf9aa0149a00e940d64d0fdc708b59880 Mon Sep 17 00:00:00 2001 From: Jack Conradson Date: Wed, 9 Apr 2025 14:47:18 -0700 Subject: [PATCH 4/6] match standard map tostring --- .../main/java/org/elasticsearch/script/DynamicMap.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/script/DynamicMap.java b/server/src/main/java/org/elasticsearch/script/DynamicMap.java index 5027a52043451..b30ecf63279f5 100644 --- a/server/src/main/java/org/elasticsearch/script/DynamicMap.java +++ b/server/src/main/java/org/elasticsearch/script/DynamicMap.java @@ -96,19 +96,21 @@ public Set> entrySet() { return delegate.entrySet(); } + + @Override public String toString() { - StringBuilder sb = new StringBuilder("DynamicMap ["); + StringBuilder sb = new StringBuilder("{"); int count = 0; for (Map.Entry entry : entrySet()) { sb.append(entry.getKey()); - sb.append(": "); + sb.append("="); sb.append(entry.getValue()); if (++count < size()) { sb.append(", "); } } - sb.append("]"); + sb.append("}"); return sb.toString(); } } From 3e0fe176391676bd3de00f270bcd809206853b93 Mon Sep 17 00:00:00 2001 From: Jack Conradson Date: Wed, 9 Apr 2025 14:52:00 -0700 Subject: [PATCH 5/6] update test --- server/src/test/java/org/elasticsearch/script/ScriptTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/test/java/org/elasticsearch/script/ScriptTests.java b/server/src/test/java/org/elasticsearch/script/ScriptTests.java index 143f0082ae00a..56ae23ddaca4f 100644 --- a/server/src/test/java/org/elasticsearch/script/ScriptTests.java +++ b/server/src/test/java/org/elasticsearch/script/ScriptTests.java @@ -194,6 +194,6 @@ public void testDynamicMapToString() { map.put("long", 1L); map.put("string", "value"); DynamicMap dm = new DynamicMap(map, Collections.emptyMap()); - assertThat(dm.toString(), both(containsString("long: 1")).and(containsString("string: value"))); + assertThat(dm.toString(), both(containsString("long=1")).and(containsString("string=value"))); } } From 02f995a894ceb07aea275bf3b1ed220637fc843d Mon Sep 17 00:00:00 2001 From: elasticsearchmachine Date: Wed, 9 Apr 2025 22:09:05 +0000 Subject: [PATCH 6/6] [CI] Auto commit changes from spotless --- server/src/main/java/org/elasticsearch/script/DynamicMap.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/script/DynamicMap.java b/server/src/main/java/org/elasticsearch/script/DynamicMap.java index b30ecf63279f5..9e4819ff296e4 100644 --- a/server/src/main/java/org/elasticsearch/script/DynamicMap.java +++ b/server/src/main/java/org/elasticsearch/script/DynamicMap.java @@ -96,8 +96,6 @@ public Set> entrySet() { return delegate.entrySet(); } - - @Override public String toString() { StringBuilder sb = new StringBuilder("{");