# HG changeset patch # User Ingo Weinzierl # Date 1275411261 0 # Node ID cc4ec127d666e679a1eaac694038c900187e020d # Parent 174f6eacd595af8668b854a5fc53d25635f913df Remove the elements of an outdated state from cache if its endOfLife method is called. gnv-artifacts/trunk@1143 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 174f6eacd595 -r cc4ec127d666 gnv-artifacts/ChangeLog --- a/gnv-artifacts/ChangeLog Mon May 31 08:20:17 2010 +0000 +++ b/gnv-artifacts/ChangeLog Tue Jun 01 16:54:21 2010 +0000 @@ -1,3 +1,20 @@ +2010-06-01 Ingo Weinzierl + + * src/main/java/de/intevation/gnv/state/StateBase.java: Remove existing + elements from cache that belong to an outdated state if its enfOfLife(.) + is called. It was necessary to adapt the signature of getHash(.) for this + - removed the parameter uuid - because endOfLife is called without any + information about the current uuid. The uuid has not been used in + getHash() anyway. + + * src/main/java/de/intevation/gnv/state/timeseries/TimeSeriesVectorOutputState.java, + src/main/java/de/intevation/gnv/state/profile/horizontalcrosssection/HorizontalCrossSectionMeshOutputState.java, + src/main/java/de/intevation/gnv/state/profile/verticalcrosssection/VerticalCrossSectionOutputState.java, + src/main/java/de/intevation/gnv/state/profile/horizontal/HorizontalProfileMeshCrossOutputState.java, + src/main/java/de/intevation/gnv/state/OutputStateBase.java: Adapted the + signature of getHash() regarding the changes in the implementing class + StateBase. + 2010-05-31 Tim Englich * doc/conf/queries.properties: diff -r 174f6eacd595 -r cc4ec127d666 gnv-artifacts/src/main/java/de/intevation/gnv/state/OutputStateBase.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/state/OutputStateBase.java Mon May 31 08:20:17 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/state/OutputStateBase.java Tue Jun 01 16:54:21 2010 +0000 @@ -209,7 +209,7 @@ // we use a cache log.info("Using cache."); Cache cache = factory.getCache(); - String key = "chart_" + getHash(uuid); + String key = "chart_" + getHash(); net.sf.ehcache.Element value = cache.get(key); if (value != null) { @@ -242,7 +242,7 @@ log.debug("Fetch chart [" + uuid + "] from cache"); CacheFactory cacheFactory = CacheFactory.getInstance(); if (cacheFactory.isInitialized()) { - String key = "chart_" + getHash(uuid); + String key = "chart_" + getHash(); net.sf.ehcache.Element object = cacheFactory.getCache().get(key); if (object != null) { @@ -302,7 +302,7 @@ protected void removeChartResult(String uuid) { log.debug("OutputStateBase.getChartResult"); if (CacheFactory.getInstance().isInitialized()) { - String key = "chart_" + getHash(uuid); + String key = "chart_" + getHash(); log.debug("Hash for Queryelements: " + key); net.sf.ehcache.Element value = CacheFactory.getInstance().getCache().get(key); if (value != null) { @@ -321,7 +321,7 @@ CacheFactory cacheFactory = CacheFactory.getInstance(); if (cacheFactory.isInitialized()) { - String key = "chart_" + getHash(uuid); + String key = "chart_" + getHash(); net.sf.ehcache.Element object = cacheFactory.getCache().get(key); if (object != null) cacheFactory.getCache().remove(key); @@ -335,7 +335,7 @@ log.debug("Prufify chart [" + uuid + "]"); CacheFactory cacheFactory = CacheFactory.getInstance(); if (cacheFactory.isInitialized()) { - String key = "chart_" + getHash(uuid); + String key = "chart_" + getHash(); cacheFactory.getCache().put(new net.sf.ehcache.Element(key, chart)); } } diff -r 174f6eacd595 -r cc4ec127d666 gnv-artifacts/src/main/java/de/intevation/gnv/state/StateBase.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/state/StateBase.java Mon May 31 08:20:17 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/state/StateBase.java Tue Jun 01 16:54:21 2010 +0000 @@ -959,7 +959,7 @@ } - protected String getHash(String uuid) { + protected String getHash() { return this.hash; } @@ -969,7 +969,7 @@ if (factory.isInitialized()) { // we use a cache Cache cache = factory.getCache(); - String key = getHash(uuid); + String key = getHash(); log.debug("Using cache - key: " + key); @@ -1059,6 +1059,17 @@ public void endOfLife(Object globalContext) { + log.debug("end of life of the current state."); + + CacheFactory factory = CacheFactory.getInstance(); + if (factory.isInitialized()) { + Cache cache = factory.getCache(); + String key = getHash(); + + if (key != null && cache.remove(key)) { + log.info("Removed element from cache - key: " + key); + } + } } diff -r 174f6eacd595 -r cc4ec127d666 gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontal/HorizontalProfileMeshCrossOutputState.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontal/HorizontalProfileMeshCrossOutputState.java Mon May 31 08:20:17 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontal/HorizontalProfileMeshCrossOutputState.java Tue Jun 01 16:54:21 2010 +0000 @@ -426,7 +426,7 @@ protected Object getChartResult(String uuid, CallContext callContext) { log.debug("HorizontalProfileMeshCrossOutputState.getChartResult"); - String key = getHash(uuid); + String key = getHash(); if (CacheFactory.getInstance().isInitialized()) { log.debug("Using cache - key: " + key); net.sf.ehcache.Element value = CacheFactory.getInstance().getCache().get(key); diff -r 174f6eacd595 -r cc4ec127d666 gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontalcrosssection/HorizontalCrossSectionMeshOutputState.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontalcrosssection/HorizontalCrossSectionMeshOutputState.java Mon May 31 08:20:17 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontalcrosssection/HorizontalCrossSectionMeshOutputState.java Tue Jun 01 16:54:21 2010 +0000 @@ -560,7 +560,7 @@ throws StateException { CacheFactory cf = CacheFactory.getInstance(); - String key = getHash(uuid); + String key = getHash(); if (cf.isInitialized()) { log.debug("Using cache - key: " + key); diff -r 174f6eacd595 -r cc4ec127d666 gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/verticalcrosssection/VerticalCrossSectionOutputState.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/verticalcrosssection/VerticalCrossSectionOutputState.java Mon May 31 08:20:17 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/verticalcrosssection/VerticalCrossSectionOutputState.java Tue Jun 01 16:54:21 2010 +0000 @@ -158,7 +158,7 @@ @Override protected Object getChartResult(String uuid, CallContext callContext) { log.debug("VerticalCrossSectionOutputState.getChartResult"); - String key = getHash(uuid); + String key = getHash(); CacheFactory factory = CacheFactory.getInstance(); if (factory.isInitialized()) { diff -r 174f6eacd595 -r cc4ec127d666 gnv-artifacts/src/main/java/de/intevation/gnv/state/timeseries/TimeSeriesVectorOutputState.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/state/timeseries/TimeSeriesVectorOutputState.java Mon May 31 08:20:17 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/state/timeseries/TimeSeriesVectorOutputState.java Tue Jun 01 16:54:21 2010 +0000 @@ -97,7 +97,7 @@ // we use a cache logger.info("Using cache."); Cache cache = factory.getCache(); - String key = "chart_" + getHash(uuid); + String key = "chart_" + getHash(); net.sf.ehcache.Element value = cache.get(key); if (value != null) {