You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2017/12/13 01:41:53 UTC
groovy git commit: Fix the `clear` method of `CommonCache`
Repository: groovy
Updated Branches:
refs/heads/master a42dc880e -> 380c79d98
Fix the `clear` method of `CommonCache`
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/380c79d9
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/380c79d9
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/380c79d9
Branch: refs/heads/master
Commit: 380c79d98a2ecf692f11d91eda0cb28ca18be23d
Parents: a42dc88
Author: sunlan <su...@apache.org>
Authored: Wed Dec 13 09:41:15 2017 +0800
Committer: sunlan <su...@apache.org>
Committed: Wed Dec 13 09:41:15 2017 +0800
----------------------------------------------------------------------
src/main/org/codehaus/groovy/runtime/memoize/CommonCache.java | 3 ++-
src/test/org/codehaus/groovy/runtime/memoize/CommonCacheTest.java | 2 +-
.../groovy/runtime/memoize/ConcurrentCommonCacheTest.java | 2 +-
3 files changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/groovy/blob/380c79d9/src/main/org/codehaus/groovy/runtime/memoize/CommonCache.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/runtime/memoize/CommonCache.java b/src/main/org/codehaus/groovy/runtime/memoize/CommonCache.java
index e698535..9286a3f 100644
--- a/src/main/org/codehaus/groovy/runtime/memoize/CommonCache.java
+++ b/src/main/org/codehaus/groovy/runtime/memoize/CommonCache.java
@@ -21,6 +21,7 @@ package org.codehaus.groovy.runtime.memoize;
import java.lang.ref.SoftReference;
import java.lang.ref.WeakReference;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.LinkedList;
@@ -182,7 +183,7 @@ public class CommonCache<K, V> implements EvictableCache<K, V> {
*/
@Override
public Collection<V> clear() {
- Collection<V> values = map.values();
+ Collection<V> values = new ArrayList<V>(map.values()); // we must create a new list, or the method will always return empty collection.
map.clear();
return values;
http://git-wip-us.apache.org/repos/asf/groovy/blob/380c79d9/src/test/org/codehaus/groovy/runtime/memoize/CommonCacheTest.java
----------------------------------------------------------------------
diff --git a/src/test/org/codehaus/groovy/runtime/memoize/CommonCacheTest.java b/src/test/org/codehaus/groovy/runtime/memoize/CommonCacheTest.java
index 2b32c4a..9ffc129 100644
--- a/src/test/org/codehaus/groovy/runtime/memoize/CommonCacheTest.java
+++ b/src/test/org/codehaus/groovy/runtime/memoize/CommonCacheTest.java
@@ -156,7 +156,7 @@ public class CommonCacheTest {
)
);
- Assert.assertArrayEquals(new String[] {"Daniel", "Male", "Shanghai"}, sc.values().toArray(new String[0]));
+ Assert.assertArrayEquals(new String[] {"Daniel", "Male", "Shanghai"}, sc.clear().toArray(new String[0]));
}
@Test
http://git-wip-us.apache.org/repos/asf/groovy/blob/380c79d9/src/test/org/codehaus/groovy/runtime/memoize/ConcurrentCommonCacheTest.java
----------------------------------------------------------------------
diff --git a/src/test/org/codehaus/groovy/runtime/memoize/ConcurrentCommonCacheTest.java b/src/test/org/codehaus/groovy/runtime/memoize/ConcurrentCommonCacheTest.java
index 340c286..e2d4366 100644
--- a/src/test/org/codehaus/groovy/runtime/memoize/ConcurrentCommonCacheTest.java
+++ b/src/test/org/codehaus/groovy/runtime/memoize/ConcurrentCommonCacheTest.java
@@ -155,7 +155,7 @@ public class ConcurrentCommonCacheTest {
)
);
- Assert.assertArrayEquals(new String[] {"Daniel", "Male", "Shanghai"}, sc.values().toArray(new String[0]));
+ Assert.assertArrayEquals(new String[] {"Daniel", "Male", "Shanghai"}, sc.clear().toArray(new String[0]));
}
@Test