From 6622ba6df809ca54665139e1f9492368a8b14ffc Mon Sep 17 00:00:00 2001 From: Antonio Barcelos Date: Tue, 18 May 2021 12:32:57 +0200 Subject: [PATCH] testkit-backend: fix TestkitListDeserializer Enabling `list of maps` deserialization by adding a special case for treating this data type. The extras `nextToken` calls were removed because this was making the deserializer leaves the parent object, this way breaking the `map of lists` deserialization. --- .../deserializer/TestkitListDeserializer.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/deserializer/TestkitListDeserializer.java b/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/deserializer/TestkitListDeserializer.java index 3478c74475..42a11ca066 100644 --- a/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/deserializer/TestkitListDeserializer.java +++ b/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/deserializer/TestkitListDeserializer.java @@ -32,10 +32,12 @@ public class TestkitListDeserializer extends StdDeserializer> { + private final TestkitCypherParamDeserializer mapDeserializer; public TestkitListDeserializer() { super( List.class ); + mapDeserializer = new TestkitCypherParamDeserializer(); } @Override @@ -88,14 +90,17 @@ public List deserialize( JsonParser p, DeserializationContext ctxt ) throws I } else { - result.add( p.readValueAs( mapValueType ) ); + if ( paramType.equals( "CypherMap" ) ) // special recursive case for maps + { + result.add( mapDeserializer.deserialize( p, ctxt ) ); + } else { + result.add( p.readValueAs( mapValueType ) ); + } } } } nextToken = p.nextToken(); } - p.nextToken(); - p.nextToken(); return result; } } \ No newline at end of file