You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ho...@apache.org on 2010/10/02 01:21:49 UTC
svn commit: r1003703 - in /lucene/dev/trunk/solr: CHANGES.txt
src/common/org/apache/solr/common/util/ConcurrentLRUCache.java
src/test/org/apache/solr/search/TestFastLRUCache.java
Author: hossman
Date: Fri Oct 1 23:21:49 2010
New Revision: 1003703
URL: http://svn.apache.org/viewvc?rev=1003703&view=rev
Log:
SOLR-2135: Fix behavior of ConcurrentLRUCache when asking for getLatestAccessedItems(0) or getOldestAccessedItems(0)
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/src/common/org/apache/solr/common/util/ConcurrentLRUCache.java
lucene/dev/trunk/solr/src/test/org/apache/solr/search/TestFastLRUCache.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1003703&r1=1003702&r2=1003703&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Fri Oct 1 23:21:49 2010
@@ -505,6 +505,10 @@ Bug Fixes
wildcard support. For example, a query of *zemog* would match documents that contain
'gomez'. (Landon Kuhn via Robert Muir)
+* SOLR-2135: Fix behavior of ConcurrentLRUCache when asking for
+ getLatestAccessedItems(0) or getOldestAccessedItems(0).
+ (David Smiley via hossman)
+
Other Changes
----------------------
Modified: lucene/dev/trunk/solr/src/common/org/apache/solr/common/util/ConcurrentLRUCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/common/org/apache/solr/common/util/ConcurrentLRUCache.java?rev=1003703&r1=1003702&r2=1003703&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/common/org/apache/solr/common/util/ConcurrentLRUCache.java (original)
+++ lucene/dev/trunk/solr/src/common/org/apache/solr/common/util/ConcurrentLRUCache.java Fri Oct 1 23:21:49 2010
@@ -398,6 +398,8 @@ public class ConcurrentLRUCache<K,V> {
*/
public Map<K, V> getOldestAccessedItems(int n) {
Map<K, V> result = new LinkedHashMap<K, V>();
+ if (n <= 0)
+ return result;
TreeSet<CacheEntry> tree = new TreeSet<CacheEntry>();
markAndSweepLock.lock();
try {
@@ -424,6 +426,8 @@ public class ConcurrentLRUCache<K,V> {
public Map<K,V> getLatestAccessedItems(int n) {
Map<K,V> result = new LinkedHashMap<K,V>();
+ if (n <= 0)
+ return result;
TreeSet<CacheEntry> tree = new TreeSet<CacheEntry>();
// we need to grab the lock since we are changing lastAccessedCopy
markAndSweepLock.lock();
Modified: lucene/dev/trunk/solr/src/test/org/apache/solr/search/TestFastLRUCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apache/solr/search/TestFastLRUCache.java?rev=1003703&r1=1003702&r2=1003703&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/test/org/apache/solr/search/TestFastLRUCache.java (original)
+++ lucene/dev/trunk/solr/src/test/org/apache/solr/search/TestFastLRUCache.java Fri Oct 1 23:21:49 2010
@@ -243,6 +243,14 @@ public class TestFastLRUCache extends Lu
assertNotNull(m.get(5));
assertNotNull(m.get(4));
assertNotNull(m.get(2));
+
+ m = cache.getOldestAccessedItems(0);
+ assertTrue(m.isEmpty());
+
+ //test this too
+ m = cache.getLatestAccessedItems(0);
+ assertTrue(m.isEmpty());
+
cache.destroy();
}