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)

Reply via email to