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