Author: michiel
Date: 2009-12-14 12:15:24 +0100 (Mon, 14 Dec 2009)
New Revision: 40231
Modified:
mmbase/branches/MMBase-1_9/core/src/main/java/org/mmbase/cache/CacheManager.java
Log:
ported some synchronization issues from trunk (could occur CCME e.g. in admin
pages)
Modified:
mmbase/branches/MMBase-1_9/core/src/main/java/org/mmbase/cache/CacheManager.java
===================================================================
---
mmbase/branches/MMBase-1_9/core/src/main/java/org/mmbase/cache/CacheManager.java
2009-12-14 11:13:15 UTC (rev 40230)
+++
mmbase/branches/MMBase-1_9/core/src/main/java/org/mmbase/cache/CacheManager.java
2009-12-14 11:15:24 UTC (rev 40231)
@@ -511,8 +511,16 @@
public String getName() { return cache.getName(); }
public String getDescription() { return cache.getDescription(); }
public int getMaxEntrySize() { return cache.getMaxEntrySize(); }
- public Set<Map.Entry<K, V>> getEntrySet() { return new
HashSet<Map.Entry<K, V>>(cache.entrySet()); }
- public Set<K> getKeySet() { return new HashSet<K>(cache.keySet()); }
+ public Set<Map.Entry<K, V>> getEntrySet() {
+ synchronized (cache.getLock()) {
+ return new HashSet<Map.Entry<K, V>>(cache.entrySet());
+ }
+ }
+ public Set<K> getKeySet() {
+ synchronized (cache.getLock()) {
+ return new HashSet<K>(cache.keySet());
+ }
+ }
public long getHits() { return cache.getHits(); }
public long getMisses() { return cache.getMisses(); }
public long getPuts() { return cache.getPuts(); }
@@ -536,12 +544,7 @@
}
public Iterator<Map.Entry<K, Integer>> iterator() {
return new Iterator<Map.Entry<K, Integer>>() {
- private Iterator<K> iterator;
- {
- synchronized(cache.getLock()) {
- iterator = new
HashSet<K>(cache.keySet()).iterator();
- }
- }
+ private Iterator<K> iterator =
Bean.this.getKeySet().iterator();
public boolean hasNext() {
return iterator.hasNext();
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs