You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Krzysztof Hołdanowicz (JIRA)" <ji...@apache.org> on 2017/11/25 16:09:00 UTC

[jira] [Resolved] (CAMEL-12037) File idempotent repository is always initialized with default 1000 cache size

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

Krzysztof Hołdanowicz resolved CAMEL-12037.
-------------------------------------------
    Resolution: Fixed

> File idempotent repository is always initialized with default 1000 cache size
> -----------------------------------------------------------------------------
>
>                 Key: CAMEL-12037
>                 URL: https://issues.apache.org/jira/browse/CAMEL-12037
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.20.0
>            Reporter: Krzysztof Hołdanowicz
>             Fix For: 2.20.2, 2.21.0
>
>   Original Estimate: 10m
>  Remaining Estimate: 10m
>
> http://camel.465427.n5.nabble.com/File-idempotent-repository-problem-since-2-20-td5815760.html
> So far we've been using file idempotent repository which was defined like 
> this: 
> <bean id="download repository" 
> class="of.apache.camel.processor.idempotent.FileIdempotentRepository"> 
>   <property name="fileStore" value="work/.downloadStore.dat" /> 
>   <property name="cacheSize" value="5000" /> 
> </bean> 
> However since Camel version 2.20 I can see that in 
> FileIdempotentRepository.java there is a cache initialization in method 
> doStart(): 
> protected void doStart() throws Exception { 
>  ... 
>  this.cache = LRUCacheFactory.newLRUCache(1000); 
>  ... 
> } 
> which always overrides our cacheSize definition with default value, because 
> doStart method is always invoked just after bean initialization (if the 
> init-method="start" was specified in bean definition) or during camel 
> context initialization. 
> As a consequence our idempotent stores always have a default 1000 cache 
> size limit. 
> Shuldn't the doStart method check the cache instance first before 
> initializing it with default cache size e.g. 
> protected void doStart() throws Exception { 
> ... 
> if (this.cache == null) { 
>   this.cache = LRUCacheFactory.newLRUCache(1000); 
> } 
> ... 
> } 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)