[ https://issues.apache.org/jira/browse/CAMEL-13741?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16881356#comment-16881356 ]
Claus Ibsen commented on CAMEL-13741: ------------------------------------- Can you build an unit test in ObjectConverterTest that demonstrates this and then provide that as a PR with an attempted fix/improvement > Map to Iterable converter regression > ------------------------------------ > > Key: CAMEL-13741 > URL: https://issues.apache.org/jira/browse/CAMEL-13741 > Project: Camel > Issue Type: Bug > Components: camel-core > Affects Versions: 2.20.0 > Reporter: Antoine DESSAIGNE > Priority: Major > > When converting a {{Map}} to an {{Iterable}} the results is no longer the > same since CAMEL-11379. > Given the following context > {code} > <?xml version="1.0" encoding="UTF-8"?> > <routes xmlns="http://camel.apache.org/schema/spring"> > <route> > <from uri="timer:single?repeatCount=1"/> > <setBody> > <groovy>[A: 'aa', B: 'bb', C: 'cc', D: 'dd']</groovy> > </setBody> > <convertBodyTo type="java.lang.Iterable"/> > <split> > <simple>${body}</simple> > <log message="${body}"/> > </split> > </route> > </routes> > {code} > It produces 4 log messages in camel 2.18.3 using the converter > {{CollectionConverter.toSet(java.util.Map<K,V>)}}. Using camel 2.24.1 it > produces only one message containing the whole list. This is due to > {{ObjectConverterOptimised}} calling > {{ObjectHelper.createIterable(java.lang.Object)}} which has a fallback to > {{Collections.singletonList(value)}} thus producing a single entry with the > whole Map. > The fix is probably to add in > {{ObjectHelper.createIterable(java.lang.Object)}} the following code > {code} > if (value instanceof Map) { > return ((Map)value).entrySet(); > } > {code} > but I would like to know what you think about it before doing a pull request. > Thanks -- This message was sent by Atlassian JIRA (v7.6.3#76005)