[ 
https://issues.apache.org/jira/browse/CAMEL-24969?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen resolved CAMEL-24969.
---------------------------------
    Resolution: Fixed

Fixed by https://github.com/apache/camel/pull/26806 (merged as cbe03f3fee0d).

_Claude Code on behalf of davsclaus_

> simple - collection and misc function fixes
> -------------------------------------------
>
>                 Key: CAMEL-24969
>                 URL: https://issues.apache.org/jira/browse/CAMEL-24969
>             Project: Camel
>          Issue Type: Sub-task
>          Components: camel-core
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>            Priority: Major
>             Fix For: 4.23.0
>
>
> Bugs in CollectionExpressionBuilder, MiscExpressionBuilder and 
> CollectionFunctionFactory.
> * (verified) {{${split(${body},'.')}}} returns [] and {{'|'}} splits every 
> character: the separator is used as a regex. Use Pattern.quote (keep \n 
> working).
> * (verified) {{${sort(${header.list})}}} sorts the body; a single argument is 
> always parsed as the reverse flag.
> * (verified) A space after a comma leaks into the argument: {{${sort(${body}, 
> true)}}} is not reversed; {{${mapAdd(${body}, 'k', 'v')}}} stores " k"/" v". 
> Affects sort, split, listAdd, listRemove, mapAdd, mapRemove, forEach, filter.
> * (verified) {{${range(5)}}} returns [1,2,3,4]; the docs say 0..4 
> (random(max) starts at 0). CollectionFunctionFactoryTest pins the current 
> result, so this needs a decision.
> * (verified) {{${uuid()}}} fails with "No bean could be found in the registry 
> for:  of type UuidGenerator" (empty generator name). Also only "classic" is 
> case-insensitive.
> * (verified) {{${collate(${header.n})}}} with a missing header gives NPE; 
> {{${range(1,${header.n})}}} too; {{${random(5,5)}}} gives "bound must be 
> positive"; {{${range(-2,2)}}} silently returns null.
> * (verified) Body exactly "," crashes isEmpty/distinct/sort/reverse/forEach 
> with StringIndexOutOfBoundsException (camel-util splitOnCharacterAsIterator).
> * kindOfType misclassifies BigDecimal (object), Map/JsonObject (array) and 
> String[] (object); duplicated in safeQuote.
> * hash never closes the InputStream (File/GenericFile body leaks a 
> FileInputStream).
> * mapAdd/mapRemove key is never evaluated ({{${mapAdd(${header.k},'v')}}} 
> stores the literal text). isEmpty is true for [null]. forEach silently drops 
> null results. listRemove(20) on List<Integer> treats 20 as an index.
> _Claude Code on behalf of davsclaus (found by an AI review of the simple 
> language source; each item marked (verified) was reproduced on main at 
> c3ef718de2e8)_



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to