[
https://issues.apache.org/jira/browse/CAMEL-23971?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18094679#comment-18094679
]
Claus Ibsen commented on CAMEL-23971:
-------------------------------------
This was not really the intention that it has these hashtable methods - its for
properties so its getProperties / setProperties methods you should use.
> 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
> Assignee: Adriano Machado
> Priority: Major
>
> 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.
> _Reported by Claude Code on behalf of Adriano Machado._
--
This message was sent by Atlassian Jira
(v8.20.10#820010)