Mercurial > dive4elements > river
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) {