Adriano Machado created CAMEL-23971:
---------------------------------------
Summary: BaseOrderedProperties missing
containsKey/contains/containsValue overrides
Key: CAMEL-23971
URL: https://issues.apache.org/jira/browse/CAMEL-23971
Project: Camel
Issue Type: Bug
Components: camel-core
Reporter: Adriano Machado
BaseOrderedProperties (in core/camel-util) extends Properties which extends
Hashtable, but stores all data in a private LinkedHashMap. It overrides put(),
get(), getProperty(), keySet(), remove(), etc. to delegate to the map, but does
NOT override containsKey(), contains(), or containsValue().
Because put() never stores into the parent Hashtable, the inherited
Hashtable.containsKey() always returns false. This silently breaks ~10 call
sites across the codebase:
- VersionSetTest: assertions are vacuously true (always pass regardless of
actual state)
- DependencyList, ExportBaseCommand, ExportSpringBoot, ExportCamelMain,
ExportQuarkus: conditional guards that never fire, so properties are always
overwritten instead of preserved
- BaseMainSupport, MainHelper: property-consumed checks that never detect
consumed properties
Discovered while working on CAMEL-23867 (TUI settings per-key config routing).
The immediate workaround there was to use getProperty(key) != null instead of
containsKey(key), but the root cause belongs in BaseOrderedProperties.
Fix: add three overrides delegating to the internal map (containsKey,
containsValue, and the legacy contains). This affects OrderedProperties,
CamelCaseOrderedProperties, and OrderedLocationProperties (all subclasses). A
full build is needed to verify that fixing the bug does not break tests that
accidentally depended on the broken behavior.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)