Thanks Ard. I will apply this patch today after work. :-)

Best Regards,

Antonio Gallardo

Ard Schrijvers escribió:
This is a partial fix of a larger problem that I am not yet capable of fixing: removing cachekeys according the correct eviction policy.
This fix at least fixes the flaw, that the StoreJanitor could delete the entire 
memoryStore part from ehcache. In the JCSDefaultStore, this size() method was 
already correct. I just noticed, that JCSDefaultStore is not in the cocoon 
trunk anymore. Is there specific reason for it? Did it move?

Regards Ard Schrijvers

The EHDefaultStore returns in the size() method the wrong number of keys
--------------------------------------------------------------
----------

                 Key: COCOON-1885
                 URL: http://issues.apache.org/jira/browse/COCOON-1885
             Project: Cocoon
          Issue Type: Bug
          Components: * Cocoon Core
    Affects Versions: 2.1.9
            Reporter: Ard Schrijvers
            Priority: Critical


The excalibut store interface defines a size() method for a store:
/**
* Returns count of the objects in the store, or -1 if could not be
     * obtained.
     */
int size();

What it not explicitely says, is that it is the number of keys in memoryStore (so not the diskStore) is needed. The StoreJanitor uses this size() to free some memory from cache when the JVM is low on memory. Since the current EHDefaultStore returns with size() ALL cachekeys (memoryStoreSize + diskStoreSize), it is quite likely when having a large cache that the StoreJanitor removes all cachekeys in memoryStore. Simply changing the size() method of EHDefaultStore to return the number of keys in memoryStore is sufficient. The JCSDefaultStore did implement it correctly already (though I do not see it in the cocoon trunk anymore..?)





--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to