You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by do...@apache.org on 2010/04/01 06:37:51 UTC
svn commit: r929824 - in
/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache: CacheLine.java
HardRefCacheLine.java SoftRefCacheLine.java UtilCache.java
Author: doogie
Date: Thu Apr 1 04:37:50 2010
New Revision: 929824
URL: http://svn.apache.org/viewvc?rev=929824&view=rev
Log:
Refactored setUseSoftReference, to call a new method
CacheLine.changeLine.
Modified:
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/CacheLine.java
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/HardRefCacheLine.java
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/SoftRefCacheLine.java
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java
Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/CacheLine.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/CacheLine.java?rev=929824&r1=929823&r2=929824&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/CacheLine.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/CacheLine.java Thu Apr 1 04:37:50 2010
@@ -35,6 +35,7 @@ public abstract class CacheLine<V> imple
this.loadTime = loadTime;
}
+ abstract CacheLine<V> changeLine(boolean useSoftReference, long expireTime);
public abstract V getValue();
public abstract boolean isInvalid();
Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/HardRefCacheLine.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/HardRefCacheLine.java?rev=929824&r1=929823&r2=929824&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/HardRefCacheLine.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/HardRefCacheLine.java Thu Apr 1 04:37:50 2010
@@ -32,6 +32,18 @@ public final class HardRefCacheLine<V> e
this.value = value;
}
+ CacheLine<V> changeLine(boolean useSoftReference, long expireTime) {
+ if (useSoftReference) {
+ return new SoftRefCacheLine<V>(getValue(), loadTime, expireTime);
+ } else {
+ if (this.expireTime == expireTime) {
+ return this;
+ } else {
+ return new HardRefCacheLine<V>(getValue(), loadTime, expireTime);
+ }
+ }
+ }
+
@Override
public V getValue() {
return value;
Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/SoftRefCacheLine.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/SoftRefCacheLine.java?rev=929824&r1=929823&r2=929824&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/SoftRefCacheLine.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/SoftRefCacheLine.java Thu Apr 1 04:37:50 2010
@@ -32,6 +32,18 @@ public final class SoftRefCacheLine<V> e
this.ref = new CacheSoftReference<V>(value);
}
+ CacheLine<V> changeLine(boolean useSoftReference, long expireTime) {
+ if (useSoftReference) {
+ if (this.expireTime == expireTime) {
+ return this;
+ } else {
+ return new SoftRefCacheLine<V>(getValue(), loadTime, expireTime);
+ }
+ } else {
+ return new HardRefCacheLine<V>(getValue(), loadTime, expireTime);
+ }
+ }
+
@Override
public V getValue() {
return ref.get();
Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java?rev=929824&r1=929823&r2=929824&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java Thu Apr 1 04:37:50 2010
@@ -500,13 +500,7 @@ public class UtilCache<K, V> implements
this.useSoftReference = useSoftReference;
for (K key: cacheLineTable.keySet()) {
CacheLine<V> line = cacheLineTable.get(key);
- if (useSoftReference) {
- if (line instanceof SoftRefCacheLine) continue;
- cacheLineTable.put(key, new SoftRefCacheLine<V>(line.getValue(), line.loadTime, line.expireTime));
- } else {
- if (line instanceof HardRefCacheLine) continue;
- cacheLineTable.put(key, new HardRefCacheLine<V>(line.getValue(), line.loadTime, line.expireTime));
- }
+ cacheLineTable.put(key, line.changeLine(useSoftReference, line.expireTime));
}
}
}