[
https://issues.apache.org/jira/browse/CAMEL-25004?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Work on CAMEL-25004 started by Claus Ibsen.
-------------------------------------------
> camel-core - Producer cache and stream caching: fix lifecycle bugs found in a
> deep review
> -----------------------------------------------------------------------------------------
>
> Key: CAMEL-25004
> URL: https://issues.apache.org/jira/browse/CAMEL-25004
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Priority: Minor
>
> A review of the producer cache and the stream caching strategy found the bugs
> below. Each one was reproduced against 4.23.0-SNAPSHOT.
> # *Evicting the producer of an endpoint in use stops the endpoint.* When the
> producer of a singleton endpoint was evicted from a producer cache (such as
> the cache of toD, with a small cacheSize), the service pool stopped the
> endpoint as well (since CAMEL-14594), also when the routes were using it,
> such as an endpoint a route consumes from. The endpoint was started again on
> next use, but was stopped in between. The endpoint is now only stopped when
> it is not in use by the routes (a dynamic endpoint, such as from toD, that no
> route consumes from), so dynamic endpoints still free their resources.
> # *The stream caching strategy accumulates its configuration when started
> again.* Each start added the spool rules of the spool thresholds, the classes
> of allowClasses/denyClasses given by name, and the core type converters
> again. They are now not duplicated.
> # *allowClasses/denyClasses given both as classes and as names fail.*
> setAllowClasses(Class...) stores an immutable list, and the classes given by
> name were added to it, which failed with UnsupportedOperationException when
> starting.
> # *The spool directory is not removed when spooling only by used heap
> memory.* The spool directory was only removed when stopping if spoolThreshold
> > 0. When spooling was only by spoolUsedHeapMemoryThreshold (or custom spool
> rules), the spool directory was left behind. It is now removed whenever
> spooling to disk was in use.
> _Claude Code on behalf of Claus Ibsen_
--
This message was sent by Atlassian Jira
(v8.20.10#820010)