[PATCH 1 of 3] ETL: Potential fix for flys/1453

Wald Commits scm-commit at wald.intevation.org
Wed Aug 21 16:15:57 CEST 2013


# HG changeset patch
# User Sascha L. Teichmann <teichmann at intevation.de>
# Date 1377094416 -7200
# Node ID 60f39ee194730e6d6d4f3a7f9fcd12a56f0e983b
# Parent  e97e710ecf3ff5c6df77150c93e43955126d9cd8
ETL: Potential fix for flys/1453.

diff -r e97e710ecf3f -r 60f39ee19473 etl/src/main/java/org/dive4elements/river/etl/aft/River.java
--- a/etl/src/main/java/org/dive4elements/river/etl/aft/River.java	Wed Aug 21 15:46:39 2013 +0200
+++ b/etl/src/main/java/org/dive4elements/river/etl/aft/River.java	Wed Aug 21 16:13:36 2013 +0200
@@ -15,9 +15,11 @@
 import java.sql.SQLException;
 
 import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.TreeMap;
 
 import org.apache.log4j.Logger;
 
@@ -136,11 +138,25 @@
             .clearParameters()
             .setInt("river_id", id1).executeQuery();
 
+        TreeMap<Double, String> station2gaugeName = new TreeMap<Double, String>(
+            new Comparator<Double>() {
+                @Override
+                public int compare(Double a, Double b) {
+                    double diff = a - b;
+                    if (diff < -0.0001) return -1;
+                    if (diff >  0.0001) return +1;
+                    return 0;
+                }
+            });
+
         try {
             while (gaugesRs.next()) {
                 int gaugeId = gaugesRs.getInt("id");
                 String name = gaugesRs.getString("name");
                 long   number = gaugesRs.getLong("official_number");
+                double station = gaugesRs.getDouble("station");
+                station2gaugeName.put(station, name);
+
                 if (gaugesRs.wasNull()) {
                     log.warn("FLYS: Gauge '" + name +
                         "' has no official number. Ignored.");
@@ -163,7 +179,8 @@
             gaugesRs.close();
         }
 
-        boolean modified = createGauges(context, aftDIPSGauges);
+        boolean modified = createGauges(
+            context, aftDIPSGauges, station2gaugeName);
 
         modified |= updateGauges(context, updateGauges);
 
@@ -364,7 +381,8 @@
 
     protected boolean createGauges(
         SyncContext          context,
-        Map<Long, DIPSGauge> gauges
+        Map<Long, DIPSGauge> gauges,
+        Map<Double, String>  station2gaugeName
     )
     throws SQLException
     {
@@ -385,6 +403,14 @@
             log.info("Gauge '" + gauge.getAftName() +
                 "' not in FLYS but in AFT/DIPS. -> Create");
 
+            String flysGaugeName = station2gaugeName.get(gauge.getStation());
+            if (flysGaugeName != null) {
+                log.warn("FLYS: AFT gauge " + gauge.getName() +
+                    " has same station as FLYS gauge " + flysGaugeName +
+                    " -> ignored.");
+                continue;
+            }
+
             if (!gauge.hasDatums()) {
                 log.warn("DIPS: Gauge '" +
                     gauge.getAftName() + "' has no datum. Ignored.");
diff -r e97e710ecf3f -r 60f39ee19473 etl/src/main/resources/sql/flys-common.properties
--- a/etl/src/main/resources/sql/flys-common.properties	Wed Aug 21 15:46:39 2013 +0200
+++ b/etl/src/main/resources/sql/flys-common.properties	Wed Aug 21 16:13:36 2013 +0200
@@ -7,7 +7,7 @@
     WHERE w.kind = 0 \
     GROUP BY r.id, r.name
 select.gauges = \
-    SELECT id, name, official_number \
+    SELECT id, name, official_number, station \
     FROM gauges \
     WHERE river_id = :river_id
 next.gauge.id = \
diff -r e97e710ecf3f -r 60f39ee19473 gwt-client/src/main/java/org/dive4elements/river/client/server/filter/GGInAFilter.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/server/filter/GGInAFilter.java	Wed Aug 21 15:46:39 2013 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/server/filter/GGInAFilter.java	Wed Aug 21 16:13:36 2013 +0200
@@ -99,11 +99,11 @@
         logger.debug("Request for: " + requesturi);
 
         // Allow access to localhost
-        if (isLocalAddress(req)) {
-            logger.debug("Request to localhost");
-            chain.doFilter(req, resp);
-            return;
-        }
+        //if (isLocalAddress(req)) {
+        //    logger.debug("Request to localhost");
+        //    chain.doFilter(req, resp);
+        //    return;
+        //}
 
         // Allow access to login pages
         String path = this.sc.getContextPath();


More information about the Dive4elements-commits mailing list