# HG changeset patch # User Sascha L. Teichmann # Date 1263041142 0 # Node ID 912797826099a6933ab3b26ef129b082c82bc6ba # Parent 3ddc22aab7648e7a013e67e8ce281083690ff70d Use new raster access. gnv-artifacts/trunk@519 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 3ddc22aab764 -r 912797826099 gnv-artifacts/ChangeLog --- a/gnv-artifacts/ChangeLog Fri Jan 08 14:27:49 2010 +0000 +++ b/gnv-artifacts/ChangeLog Sat Jan 09 12:45:42 2010 +0000 @@ -1,3 +1,13 @@ +2010-01-09 Sascha L. Teichmann + + * src/main/java/de/intevation/gnv/state/profile/verticalcrosssection/VerticalCrossSectionOutputState.java: + Prevent NPE if no results are produced by vertical cross sections. + + * src/main/java/de/intevation/gnv/math/QueriedXYDepth.java: Replaced + envelope checking by direct coordinate checking in tile cache. + Store the last used tile explicitly to save it from being collected + by the garbage collector. + 2010-01-08 Tim Englich * src/main/java/de/intevation/gnv/utils/InputValidator.java (getPointValue), diff -r 3ddc22aab764 -r 912797826099 gnv-artifacts/src/main/java/de/intevation/gnv/math/QueriedXYDepth.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/math/QueriedXYDepth.java Fri Jan 08 14:27:49 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/math/QueriedXYDepth.java Sat Jan 09 12:45:42 2010 +0000 @@ -37,6 +37,8 @@ private QueryExecutor queryExecutor; private ArrayList> rasterData; + + private RasterObject last; /** * Constructor @@ -60,7 +62,7 @@ Collection result = queryExecutor.executeQuery(this.queryID,filterValues); for (Result row: result) { if ((ro = (RasterObject)row.getObject(0)) != null) { - rasterData.add(new SoftReference(ro)); + rasterData.add(new SoftReference(last = ro)); } break; } @@ -74,11 +76,14 @@ } private RasterObject getRasterObject(Coordinate coordinate){ + if (last != null && last.contains(coordinate)) { + return last; + } for (int i = rasterData.size()-1; i >= 0; --i) { SoftReference ref = rasterData.get(i); RasterObject ro = ref.get(); - if (ro != null && ro.getEnvelope().contains(coordinate)) { - return ro; + if (ro != null && ro.contains(coordinate)) { + return last = ro; } } return null; diff -r 3ddc22aab764 -r 912797826099 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 Fri Jan 08 14:27:49 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/verticalcrosssection/VerticalCrossSectionOutputState.java Sat Jan 09 12:45:42 2010 +0000 @@ -450,6 +450,11 @@ log.info("Chart not in cache yet."); + if (!(result instanceof AttributedXYColumns)) { + log.error("result of wrong type"); + return null; + } + AttributedXYColumns columns = (AttributedXYColumns)result;