[ https://issues.apache.org/jira/browse/CAMEL-13741?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16883803#comment-16883803 ]
Andrea Cosentino commented on CAMEL-13741: ------------------------------------------ I didn't merge the 2.x stuff, because I noticed the failures. I'm going to close the PR for 2.x and we are waiting for your contributiosn next week. Thanks for your time. > Map to Iterable converter regression > ------------------------------------ > > Key: CAMEL-13741 > URL: https://issues.apache.org/jira/browse/CAMEL-13741 > Project: Camel > Issue Type: Improvement > Components: camel-core > Affects Versions: 2.20.0 > Reporter: Antoine DESSAIGNE > Priority: Major > Time Spent: 20m > Remaining Estimate: 0h > > 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.14#76016)