[
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)