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