# HG changeset patch # User Sascha L. Teichmann # 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 station2gaugeName = new TreeMap( + new Comparator() { + @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 gauges + Map gauges, + Map 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();