The error was found after removing the converter of String to List class in CXF.
The removed converter has covered the issue for a long time :(

On Tue Apr 24 10:39:56 2012, Hadrian Zbarcea wrote:
I think you're totally mistaken in attributing the cause of the
conversion to the a list of ActiveMQDestinations to the property
editor. It doesn't even kick in. The converter from the activemq camel
camel component kicked in and fooled you :).

$0.02,
Hadrian

On 04/23/2012 10:27 PM, Willem Jiang wrote:
+1 for the new change.

It's very confuse me that the a String can be turned into a List of
ActiveMQ in the CXF producer last week.
The fix make the camel converter more clean now :)

On Tue Apr 24 02:46:41 2012, Claus Ibsen wrote:
Hi

Just a heads up that I just committed 2 changes trunk and 2.9 branches

a)
The java beans property editor is no longer used as fallback type
converter by Camel.

They are not thread safe, slow, and can cause unforseen side effects
when adding JARs to a JVM.
And they dont take generics into account so converting to a List /
Array etc. Can trigger unforseen effects such as a String -> List
will be converted to a List of ActiveMQDestination objects.


b)
optimized conversion to primitives.
This is now faster.

For example converting in a for loop 10.000 times runs now 5-10x
faster :)
Yeah its not the typical use-case, but a cheap way to see it runs
faster.



On Tue, Apr 17, 2012 at 7:46 AM, Claus Ibsen<claus.ib...@gmail.com>
wrote:
Hi

Recently I have spent some time to improve the type converters in
Camel 2.10.

Most significant is the following changes
a) fix important bug
b) Fail fast
c) tryConvertTo
d) Expose utilization statistics


Ad a)
A bug was reported in https://issues.apache.org/jira/browse/CAMEL-5164

In summary if using camel-jaxb that offers a fallback type converter,
and a failure occurs during XML marshalling,
then subsequent new XML messages may fail, despite they were okay.

Ad b)
Due to a we need to detect this faster and better. So now the type
converter system in Camel will fail fast
by throwing a new TypeConversionException (its runtime). That allows
Camel to detect the (a) failure faster
from a fallback type converter (regular non fallback would fail fast
already)

This means the API is also consistent from caller point of view. You
get a TypeConversionException if there
was a failure during a type conversion attempt.

Ad c)
There is some places in camel-core where we want to only try to
convert. For example with the binary predicates
where you want to compare if X> Y. Then we try to coerce X and Y to
numeric values.

Likewise there is a few other spots where we do this, such as the XSLT
component, where we try to use StAX, SAX, before DOM etc.
So we have introduced a tryConvertTo API, which would not fail during
type conversion.

Ad d)
The type converter system is used a lot in Camel during routing
messages. Now we expose utilization statistics,
which allow end users to spot if there is too many missing type
conversion attempts. For example a route may attempt to convert, where
there is no suitable type converter. This can now more easily be
spotted, allowing the end user to either. Implement such a missing
type converter, or
correct a mistake in his application or the likes.

The statistics is exposed in JMX and as well when Camel shutdown as a
log line.




On another note I am also hunting down to avoid using the
PropertiesEditorTypeConverter, as it has many flaws
- its not thread safe
- its slow
- and 3rd party projects can add property editors that influence
Camel's type converts (eg ActiveMQ has a String -> List) properties
editor that turns a String into a List of ActiveMQDestination
instances.
- it does not understand generics in List/Collection type, eg the
ActiveMQ example above

And basically we uses it only in Camel for doing some of the simpler
basic conversions: String<-> Numeric. And so forth. But over the time
we have added those as type converter directly in Camel, as they are
faster as well.




--
Claus Ibsen
-----------------
CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com
FuseSource
Email: cib...@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus, fusenews
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/






--
Willem
----------------------------------
CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com
FuseSource
Web: http://www.fusesource.com
Blog: http://willemjiang.blogspot.com (English)
http://jnn.javaeye.com (Chinese)
Twitter: willemjiang
Weibo: willemjiang





--
Willem
----------------------------------
CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com
FuseSource
Web: http://www.fusesource.com
Blog:    http://willemjiang.blogspot.com (English)
        http://jnn.javaeye.com (Chinese)
Twitter: willemjiang
Weibo: willemjiang

Reply via email to