[ 
https://issues.apache.org/jira/browse/CAMEL-25004?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen reassigned CAMEL-25004:
-----------------------------------

    Assignee: 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)

Reply via email to