Claus Ibsen created CAMEL-26509:
-----------------------------------

             Summary: camel-core - TypeConversionException always reports 
java.lang.String as the from type, and ArrayTypeConverter throws on an element 
that does not fit the array
                 Key: CAMEL-26509
                 URL: https://issues.apache.org/jira/browse/CAMEL-26509
             Project: Camel
          Issue Type: Bug
          Components: camel-core
            Reporter: Claus Ibsen
             Fix For: 4.24.0


Two bugs in the type converter of camel-core, found while fixing CAMEL-26189 
(camel-jgroups-raft).

*1. TypeConversionException reports the wrong "from type"*

{{CoreTypeConverterRegistry.createTypeConversionException}} builds the 
exception from {{MessageHelper.extractValueForLogging(value, 
exchange.getIn())}} when there is an exchange. That value is a String (the body 
prepared for logging), so:
* the message always says {{Error during type conversion from type: 
java.lang.String to the required type: ...}}, whatever the real type of the 
value was;
* {{TypeConversionException.getValue()}} and {{getFromType()}} return that 
logging String and {{String.class}}, not the value and its type.

The logging-prepared value is still right for the message text (it keeps the 
length limit and the masking of sensitive data), but the type should be the 
type of the real value, and {{getValue()}}/{{getFromType()}} should give the 
real value and type.

*2. ArrayTypeConverter throws instead of returning no conversion*

{{ArrayTypeConverter.convertTo}} fills the target array with {{Array.set}} 
(from a Collection, and from another array). When an element does not fit the 
component type of the target array (for example a String element converted to 
{{int[]}}), {{Array.set}} throws {{IllegalArgumentException}} and the 
conversion fails, instead of returning {{null}} (no conversion) so that another 
converter can try, or the caller gets the normal "no type converter" outcome.

Both need tests in camel-core.

_Claude Code on behalf of Claus Ibsen (davsclaus)_



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to