-
Couldn't load subscription status.
- Fork 3k
Description
Describe the bug
After #45233 quarkus fails to deserialize rest endpoints with map param like: (@QueryParam("param") Map<String, String> params)
(Example from testsuite - https://github.com/quarkus-qe/quarkus-test-suite/blob/main/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/resources/PlainBookResource.java#L54)
Accessing this endpoint with string: {"id":"Hagakure","author":"Tsuramoto"} Fails with:
...
Caused by: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap<java.lang.String,java.lang.String>` from Array value (token `JsonToken.START_ARRAY`)
11:19:03,792 INFO [app] at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 1]
11:19:03,792 INFO [app] at io.quarkus.ts.http.restclient.reactive.json.JsonParamConverterProvider$JsonParamConverter.fromString(JsonParamConverterProvider.java:82)
11:19:03,792 INFO [app] at org.jboss.resteasy.reactive.server.core.parameters.converters.RuntimeResolvedConverter.convert(RuntimeResolvedConverter.java:24)
11:19:03,792 INFO [app] at org.jboss.resteasy.reactive.server.handlers.ParameterHandler.handleResult(ParameterHandler.java:108)
11:19:03,792 INFO [app] ... 69 more
11:19:03,792 INFO [app] Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap<java.lang.String,java.lang.String>` from Array value (token `JsonToken.START_ARRAY`)
11:19:03,792 INFO [app] at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 1]
11:19:03,792 INFO [app] at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)
11:19:03,792 INFO [app] at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1767)
11:19:03,792 INFO [app] at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1541)
11:19:03,792 INFO [app] at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromArray(StdDeserializer.java:222)
11:19:03,792 INFO [app] at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:457)
11:19:03,792 INFO [app] at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)
11:19:03,792 INFO [app] at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:342)
11:19:03,792 INFO [app] at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4917)
11:19:03,792 INFO [app] at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3860)
11:19:03,792 INFO [app] at io.quarkus.ts.http.restclient.reactive.json.JsonParamConverterProvider$JsonParamConverter.fromString(JsonParamConverterProvider.java:79)
11:19:03,792 INFO [app] ... 71 more
This used to work before without problems.
When I change the method to explicitly use either HashMap or LinkedHashMap it works without problem (IDK why it works with LinkedHashMap, but cannot deserialize it to same LinkedHashMap if I specify just 'Map').
Expected behavior
No response
Actual behavior
No response
How to Reproduce?
No response
Output of uname -a or ver
No response
Output of java -version
No response
Quarkus version or git rev
999-SNAPSHOT
Build tool (ie. output of mvnw --version or gradlew --version)
No response
Additional information
No response