diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FixingsColumnFactory.java @ 2622:8bc1e1cb7f7b

Fixed the fixings columns caching problem. flys-artifacts/trunk@4207 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 06 Apr 2012 10:12:34 +0000
parents cc0fa1798a3c
children a441be7f1589
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FixingsColumnFactory.java	Thu Apr 05 18:25:48 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FixingsColumnFactory.java	Fri Apr 06 10:12:34 2012 +0000
@@ -16,9 +16,13 @@
 
 import org.hibernate.type.StandardBasicTypes;
 
+import org.apache.log4j.Logger;
+
 public class FixingsColumnFactory
 {
-    public static final String CACHE_NAME = "fixing-columns";
+    private static Logger log = Logger.getLogger(FixingsColumnFactory.class);
+
+    public static final String CACHE_NAME = "fixings-columns";
 
     public static final String SQL_COLUMN_WS =
         "SELECT wcv.position AS km, wcv.w AS w " +
@@ -41,27 +45,40 @@
 
     public FixingsColumn getColumnData(Fixing.Column column) {
 
-        FixingsColumn result;
+        boolean debug = log.isDebugEnabled();
+
+        if (debug) {
+            log.debug("FixingsColumnFactory.getColumnData");
+        }
 
         Cache cache = CacheFactory.getCache(CACHE_NAME);
 
-        if (cache != null) {
-            Integer cacheKey = Integer.valueOf(column.getId());
-            Element element = cache.get(cacheKey);
+        if (cache == null) {
+            if (debug) {
+                log.debug("Cache unconfigured.");
+            }
+            return getUncached(column);
+        }
 
-            if (element != null) {
-                return (FixingsColumn)element.getValue();
+        Integer cacheKey = Integer.valueOf(column.getId());
+        Element element  = cache.get(cacheKey);
+
+        if (element != null) {
+            if (debug) {
+                log.debug("Column " + cacheKey + " found in cache.");
             }
-
-            if ((result = getUncached(column)) != null) {
+            return (FixingsColumn)element.getValue();
+        }
+        else {
+            FixingsColumn result = getUncached(column);
+            if (result != null) {
+                if (debug) {
+                    log.debug("Store column " + cacheKey + " into cache.");
+                }
                 cache.put(new Element(cacheKey, result));
             }
+            return result;
         }
-        else {
-            result = getUncached(column);
-        }
-
-        return result;
     }
 
     protected FixingsColumn getUncached(Fixing.Column column) {

http://dive4elements.wald.intevation.org