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

Work on CAMEL-26041 started by Claus Ibsen.
-------------------------------------------
> camel-bean - the error of a call of equals on the body says to unmarshal the 
> body
> ---------------------------------------------------------------------------------
>
>                 Key: CAMEL-26041
>                 URL: https://issues.apache.org/jira/browse/CAMEL-26041
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-bean
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>            Priority: Minor
>             Fix For: 4.24.0
>
>
> Camel does not call the methods of java.lang.Object on a bean 
> ({{BeanInfo.EXCLUDED_METHOD_NAMES}}: equals, hashCode, getClass, wait, notify 
> and the others), so {{${body.equals('x')}}} fails with a 
> {{MethodNotFoundException}} for any body. Since CAMEL-25749, 
> {{BeanExpression.invokeMethodIfPresent}} adds the body hint to the error of 
> an OGNL call on a body that is still the payload, so for a String body the 
> error says:
> {noformat}
> Failed to invoke method: equals('test-value-2') (the body is text (a String), 
> set by to at survey-s.camel.yaml:153: unmarshal it first with the data format 
> of the payload (such as unmarshal: json, unmarshal: jacksonXml or unmarshal: 
> csv) to read its fields) on the message body of type java.lang.String due to: 
> org.apache.camel.component.bean.MethodNotFoundException: Method with name: 
> equals('test-value-2') not found on bean: test-value-2 of type: 
> java.lang.String
> {noformat}
> The body is not why it failed, and unmarshalling it does not help: the 
> comparison is {{${body} == 'test-value-2'}}.
> Checked on 4.24.0-SNAPSHOT with {{camel run}}: a log of 
> {{same=${body.equals('test-value-2')}}} after an aws-secrets-manager 
> getSecret, found while adding the catalog body types of the AWS components 
> (CAMEL-24961).
> *Proposed change*: no body hint when the method is one Camel does not call; 
> say that instead, and for equals how to compare with the Simple operator.
> _Claude Code on behalf of davsclaus_



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

Reply via email to