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

Claus Ibsen resolved CAMEL-772.
-------------------------------

    Resolution: Won't Fix

The problem is that both types (right vs. left) might need to be casted and you 
really dont know which one was the one the end user wanted it to be expected 
as. 

> Predicates with two types should consider casting to desired type before 
> evaluating
> -----------------------------------------------------------------------------------
>
>                 Key: CAMEL-772
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-772
>             Project: Apache Camel
>          Issue Type: Improvement
>          Components: camel-core
>    Affects Versions: 1.4.0
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>             Fix For: 2.0.0
>
>         Attachments: CAMEL-772.patch
>
>
> I had this unit test where I want to assert that the message body contains 
> this string part
> {code}
>         MockEndpoint error = getMockEndpoint("mock:errorQueue");
>         error.expectedMessageCount(1);
>         
> error.message(0).body().contains("<patientCpr>0101701234</patientCpr>");
> {code}
> But the expression fails because the body is byte array and is not casted to 
> String as the contains type is.
> If I change the code to:
> {code}
>         
> error.message(0).body().convertTo(String.class).contains("<patientCpr>0101701234</patientCpr>");
> {code}
> Then it of course works. But what if there already is a type convert in Camel 
> that could have done the cast for me?
> But is it dangerous to add such automatic type casting behind the end-users 
> back? Any thoughts?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to