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

Claus Ibsen updated CAMEL-21546:
--------------------------------
    Priority: Minor  (was: Major)

> camel-core - simple expressions like 
> ${exchangeProperty.CamelAttachmentObjects} does not working because 
> AbstractExchange.getProperty does not fallback to a safeCopyProperties 
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-21546
>                 URL: https://issues.apache.org/jira/browse/CAMEL-21546
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 3.22.2, 4.9.0
>            Reporter: Artem St
>            Priority: Minor
>             Fix For: 3.22.3, 4.x
>
>
> I'm not sure if this is a bug or intended behavior, but when we search for 
> properties on an exchange, the search only checks the {{internalProperties}} 
> of the exchange and the {{properties}} map. It does not look into 
> {{{}safeCopyProperties{}}}.
> As a result, simple code like this stopped working after the attachments were 
> refactored:
> {code:java}
>  ${exchangeProperty.CamelAttachmentObjects}{code}
>  
> The current implementation of {{getProperty}} is as follows:
> {code:java}
>     @Override
>     public Object getProperty(String name) {
>         Object answer = null;
>         ExchangePropertyKey key = 
> ExchangePropertyKey.asExchangePropertyKey(name);
>         if (key != null) {
>             answer = internalProperties.get(key);
>             // if the property is not an internal then fallback to lookup in 
> the properties map
>         }
>         if (answer == null && properties != null) {
>             answer = properties.get(name);
>         }
>         return answer;
>     } {code}
>  
> Shouldn't it be more like this to include {{safeCopyProperties}} in the 
> lookup?
> {code:java}
>     public Object getProperty(String name) {
>         Object answer = null;
>         ExchangePropertyKey key = 
> ExchangePropertyKey.asExchangePropertyKey(name);
>         if (key != null) {
>             answer = internalProperties[key.ordinal()];
>             // if the property is not an internal then fallback to lookup in 
> the properties map
>         }
>         if (answer == null && hasSafeCopyProperties()) {
>             answer = safeCopyProperties.get(name);
>         }
>         if (answer == null && properties != null) {
>             answer = properties.get(name);
>         }
>         return answer;
>     } {code}



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

Reply via email to