[
https://issues.apache.org/jira/browse/CAMEL-4959?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13196819#comment-13196819
]
Andrey Utkin commented on CAMEL-4959:
-------------------------------------
Hi, Claus.
Yes, I can try to make patch with unit test for ObjectConverter.
But suggested solution - return Void.TYPE from toXXXX() methods of
ObjectConverter - is not correct :) ObjectConverter is converter, so that
methods must declare return type correctly - Short, Long, Integer. It is not
possible to return Void from toXXXX()...
May be it is correct to return 0 for NaN?
At least JDK do it:
==
Double d = Double.NaN;
Float f = Float.NaN;
System.out.println(d.longValue() + ", " + f.shortValue());
==
will print
"0, 0"
> Incorrect caching type converter misses for NaN
> -----------------------------------------------
>
> Key: CAMEL-4959
> URL: https://issues.apache.org/jira/browse/CAMEL-4959
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Affects Versions: 2.8.3
> Reporter: Andrey Utkin
> Priority: Minor
> Fix For: 2.8.5, 2.9.1, 2.10.0
>
>
> When converting Double or Float with value NaN,
> org.apache.camel.converter.ObjectConverter returns "null". But
> org.apache.camel.impl.converter.BaseTypeConverterRegistry.doConvertTo(Class,
> Exchange, Object) interpret this "null" as "suitable conversion not found"
> and cache misses. This lead to completely forgetting of conversion for given
> types.
> For example, when conversing Double to Long, all works until Double is NaN.
> After that, conversion for "Double-to-Long" marked as misses. And camel stop
> do any conversion for Double-to-Long until restart.
> Possible solution is to modify ObjectConverter`s methods to return
> "Void.TYPE" instead of "null" for NaN.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira