diff artifacts/src/main/java/org/dive4elements/river/exports/injector/KmFromRequestInjector.java @ 8367:16dc2da05aef

Overwriting the current km in context gives unexpected results if artifacts from different km have been loaded.
author Tom Gottfried <tom@intevation.de>
date Thu, 02 Oct 2014 11:46:44 +0200
parents 7341bebc79d0
children 5e38e2924c07
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/exports/injector/KmFromRequestInjector.java	Thu Oct 02 11:04:14 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/injector/KmFromRequestInjector.java	Thu Oct 02 11:46:44 2014 +0200
@@ -19,7 +19,6 @@
 {
     private static final Logger log = Logger.getLogger(KmFromRequestInjector.class);
 
-    public static final Double INVALID_KM = Double.valueOf(-1d);
     public static final String XPATH_CHART_CURRENTKM =
         "/art:action/art:attributes/art:currentKm/@art:km";
     @Override
@@ -31,7 +30,12 @@
     public void injectContext(
         CallContext ctx,
         Artifact artifact,
-        Document request) {
+        Document request
+    ) {
+        if (ctx.getContextValue(CURRENT_KM) instanceof Number) {
+            return;
+        }
+
         Double km = getCurrentKmFromRequest(request);
         if (Double.isNaN(km)) {
             RangeAccess access = new RangeAccess((D4EArtifact)artifact);

http://dive4elements.wald.intevation.org