Simulator does not support exploded parameters
When providing exploded query parameters in a message for the simulator, an exception is thrown caused by the algorithm that collects the queryParams for the message.
Regards, Thorsten
java.lang.IllegalStateException: Duplicate key productCharacteristic (attempted merging values 107 and 108) at java.base/java.util.stream.Collectors.duplicateKeyException(Collectors.java:133) ~[na:na] at java.base/java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1(Collectors.java:180) ~[na:na] at java.base/java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169) ~[na:na] at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) ~[na:na] at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[na:na] at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) ~[na:na] at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[na:na] at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[na:na] at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) ~[na:na] at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na] at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) ~[na:na] at com.consol.citrus.http.message.HttpMessage.queryParams(HttpMessage.java:200) ~[citrus-http-2.8.0.jar!/:na] at com.consol.citrus.http.controller.HttpMessageController.handleRequestInternal(HttpMessageController.java:140) ~[citrus-http-2.8.0.jar!/:na] at com.consol.citrus.http.controller.HttpMessageController.handleGetRequest(HttpMessageController.java:59) ~[citrus-http-2.8.0.jar!/:na] at jdk.internal.reflect.GeneratedMethodAccessor204.invoke(Unknown Source) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) ~[spring-web-5.1.17.RELEASE.jar!/:5.1.17.RELEASE] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) ~[spring-web-5.1.17.RELEASE.jar!/:5.1.17.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105) ~[spring-webmvc-5.1.17.RELEASE.jar!/:5.1.17.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892) ~[spring-webmvc-5.1.17.RELEASE.jar!/:5.1.17.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) ~[spring-webmvc-5.1.17.RELEASE.jar!/:5.1.17.RELEASE]
@svettwer @christophd Hi we @Postfinance would like to submitt a fix for this issues. The fix would change a Map to something that allows duplicated entries like List<Pair<String, String>>. This would also mean changing contract for the com.consol.citrus.http.message.HttpMessage#getQueryParams with all consequent changes. What is your opnion is it acceptable?
Fixed with (#583) Exchanged ArrayList with LinkedList : 6cd451ac20bda272fb0acf01181896168d5d54e0 | Thu Mar 28 11:00:42 CET 2019 | Sven Hettwer | (#583) Exchanged ArrayList with LinkedList