Artem St created CAMEL-21546: -------------------------------- Summary: 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: 4.9.0, 3.22.2 Reporter: Artem St 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)