# HG changeset patch # User Tom Gottfried # Date 1412243204 -7200 # Node ID 16dc2da05aefd25e35def0cacaa78dab59c1f627 # Parent 061e85212d25c7f13e340fbfbe4205a9f2d2eb4c Overwriting the current km in context gives unexpected results if artifacts from different km have been loaded. diff -r 061e85212d25 -r 16dc2da05aef artifacts/src/main/java/org/dive4elements/river/exports/injector/KmFromGaugeNameInjector.java --- a/artifacts/src/main/java/org/dive4elements/river/exports/injector/KmFromGaugeNameInjector.java Thu Oct 02 11:04:14 2014 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/injector/KmFromGaugeNameInjector.java Thu Oct 02 11:46:44 2014 +0200 @@ -25,6 +25,10 @@ @Override public void injectContext(CallContext ctx, Artifact artifact, Document doc) { + if (ctx.getContextValue(CURRENT_KM) instanceof Number) { + return; + } + D4EArtifact d4e = (D4EArtifact)artifact; RangeAccess access = new RangeAccess(d4e); String name = d4e.getDataAsString("gauge_name"); diff -r 061e85212d25 -r 16dc2da05aef artifacts/src/main/java/org/dive4elements/river/exports/injector/KmFromGaugeNumberInjector.java --- a/artifacts/src/main/java/org/dive4elements/river/exports/injector/KmFromGaugeNumberInjector.java Thu Oct 02 11:04:14 2014 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/injector/KmFromGaugeNumberInjector.java Thu Oct 02 11:46:44 2014 +0200 @@ -29,6 +29,10 @@ Artifact artifact, Document request ) { + if (ctx.getContextValue(CURRENT_KM) instanceof Number) { + return; + } + HistoricalDischargeAccess access = new HistoricalDischargeAccess((D4EArtifact)artifact); Long gaugeNumber = access.getOfficialGaugeNumber(); diff -r 061e85212d25 -r 16dc2da05aef artifacts/src/main/java/org/dive4elements/river/exports/injector/KmFromLocationInjector.java --- a/artifacts/src/main/java/org/dive4elements/river/exports/injector/KmFromLocationInjector.java Thu Oct 02 11:04:14 2014 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/injector/KmFromLocationInjector.java Thu Oct 02 11:46:44 2014 +0200 @@ -27,6 +27,10 @@ Artifact artifact, Document doc ) { + if (ctx.getContextValue(CURRENT_KM) instanceof Number) { + return; + } + RangeAccess access = new RangeAccess((D4EArtifact)artifact); if (access.getLocations() != null && access.getLocations().length > 0) { diff -r 061e85212d25 -r 16dc2da05aef artifacts/src/main/java/org/dive4elements/river/exports/injector/KmFromRequestInjector.java --- 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);