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));
             }
         }
     }