Hi all,

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);
}
...

}

Regards
Kris

-- 

Pozdrawiam

Krzysztof Hołdanowicz

Reply via email to