Claus Ibsen created CAMEL-25322:
-----------------------------------

             Summary: camel-bean - a missing Map key says the Map has no such 
key and lists its keys
                 Key: CAMEL-25322
                 URL: https://issues.apache.org/jira/browse/CAMEL-25322
             Project: Camel
          Issue Type: Improvement
          Components: camel-bean
            Reporter: Claus Ibsen


Since CAMEL-24916 a dot on a Map reads the key: {{$\{body.orderId\}}} gives the 
value when the key is there. When the key is missing, the bean language still 
adds the hint from before that change:

{noformat}Failed to invoke method: orderId (the value is a Map: a key is read 
with [orderId], as in ${body[orderId]}, not with .orderId) on the message body 
of type java.util.LinkedHashMap ...{noformat}

That points the wrong way: the dot form is fine, and {{$\{body[orderId]\}}} 
would just give null. The actual mistake is that the Map has no such key, 
typically because the body is not the Map one thinks: inside a split over an 
order's lines the body is a line ({{sku, qty, price}}), not the order. Found in 
the local-model benchmark (http-client and openapi-client), where the model 
followed the hint and stayed stuck.

*Proposal:* say what is true and show the keys: {{(the Map has no key orderId; 
its keys are: sku, qty, price)}}, the key list capped (e.g. 20 keys).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to