Skip to content

Commit 1e49d36

Browse files
authored
Delegate to wrapped map for toString in DynamicMap (#72048)
This changes has DynamicMap delegate to its interally wrapped Map for toString to give better debugging information. This is particularly relevant to Debug.explain in Painless.
1 parent 2d3f171 commit 1e49d36

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

server/src/main/java/org/elasticsearch/script/DynamicMap.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,4 +94,9 @@ public Collection<Object> values() {
9494
public Set<Entry<String, Object>> entrySet() {
9595
return delegate.entrySet();
9696
}
97+
98+
@Override
99+
public String toString() {
100+
return delegate.toString();
101+
}
97102
}

server/src/test/java/org/elasticsearch/script/ScriptTests.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,4 +199,13 @@ public void testParseFromObjectWrongParamsFormat() {
199199
);
200200
assertEquals("Value must be of type Map: [params]", exc.getMessage());
201201
}
202+
203+
public void testDynamicMapToString() {
204+
Map<String, Object> map = new HashMap<>();
205+
map.put("long", 1L);
206+
map.put("string", "value");
207+
DynamicMap dm = new DynamicMap(map, Collections.emptyMap());
208+
assertTrue(dm.toString().contains("string=value"));
209+
assertTrue(dm.toString().contains("long=1"));
210+
}
202211
}

0 commit comments

Comments
 (0)