Skip to content

[backport camel-4.18.x] CAMEL-23840: Fix pollEnrich cacheSize(-1) not disabling consumer cache#24285

Merged
davsclaus merged 1 commit into
camel-4.18.xfrom
backport/24283-to-camel-4.18.x
Jun 29, 2026
Merged

[backport camel-4.18.x] CAMEL-23840: Fix pollEnrich cacheSize(-1) not disabling consumer cache#24285
davsclaus merged 1 commit into
camel-4.18.xfrom
backport/24283-to-camel-4.18.x

Conversation

@davsclaus

Copy link
Copy Markdown
Contributor

Backport of #24283

Cherry-pick of #24283 onto camel-4.18.x.

Original PR: #24283 - CAMEL-23840: camel-core: pollEnrich with cacheSize(-1) does not disable consumer cache (dynamic endpoints)
Original author: @msnijder30
Target branch: camel-4.18.x

Original description

pollEnrich().cacheSize(-1) is documented to disable the consumer cache entirely, but DefaultConsumerCache normalizes cacheSize <= 0 to the CamelContext maximum (default 1000), retaining up to 1000 polling consumers. For resource-backed components (e.g., SFTP), each retained consumer holds an open connection that is never cleaned up.

Fix introduces EmptyConsumerCache (mirroring EmptyProducerCache) that creates a fresh consumer on every acquire and stops it on release. PollEnricher.doBuild() now selects EmptyConsumerCache when cacheSize < 0, matching the pattern used by SendDynamicProcessor, RecipientList, and RoutingSlip on the producer side.

See original PR for full details.

pollEnrich().cacheSize(-1) should disable the consumer cache entirely,
but DefaultConsumerCache normalizes cacheSize <= 0 to the context
maximum (default 1000), retaining up to 1000 polling consumers. For
resource-backed components like SFTP, each retained consumer holds an
open connection that is never cleaned up.

Fix by introducing EmptyConsumerCache (mirroring EmptyProducerCache)
that creates a fresh consumer on every acquire and stops it on release.
PollEnricher.doBuild() now selects EmptyConsumerCache when cacheSize < 0,
matching the pattern used by SendDynamicProcessor, RecipientList, and
RoutingSlip on the producer side.

Closes #24283
Co-Authored-By: OpenCode (DeepSeek V4 Pro) <contact@anoma.ly>
Co-Authored-By: OpenCode (GLM 5.2) <contact@anoma.ly>
@davsclaus davsclaus merged commit cb17473 into camel-4.18.x Jun 29, 2026
3 checks passed
@davsclaus davsclaus deleted the backport/24283-to-camel-4.18.x branch June 29, 2026 07:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants