# HG changeset patch # User Raimund Renkert # Date 1364381276 -3600 # Node ID 278d8759c92b3028a95db9f76f621a048e15fc61 # Parent 84beabb3897c3eae72cfc634525c7f304b0dd2b3 Allow null values in measurement_station columns without 'not null' constraints. diff -r 84beabb3897c -r 278d8759c92b flys-backend/src/main/java/de/intevation/flys/importer/ImportMeasurementStation.java --- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportMeasurementStation.java Wed Mar 27 11:46:00 2013 +0100 +++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportMeasurementStation.java Wed Mar 27 11:47:56 2013 +0100 @@ -58,10 +58,8 @@ try { gauge = getGaugeFromDB(); if (gauge == null) { - log.warn("Skip measurement station '" + name - + "': unable to find gauge with name '" + this.gauge + log.warn("No gauge found for measurement station '" + name + "'"); - return null; } } catch (Exception e) { @@ -70,28 +68,29 @@ Range range = this.range.getPeer(river); if (range == null) { - log.warn("Skip measurement station '" + name - + "': unable to get range"); - return null; + log.warn("No range found for measurement station'" + name + "'"); } TimeInterval observationTimerange = this.observationTimerange .getPeer(); if (observationTimerange == null) { - log.warn("Skip measurement station '" + name - + "': unable to get time interval for observation time"); - return null; + log.warn("No time range found for measurement station '" + + name + "'"); } Session session = ImporterSession.getInstance() .getDatabaseSession(); org.hibernate.Query query = session - .createQuery("FROM MeasurementStation " - + " WHERE river=:river AND station=:station"); + .createQuery( + "FROM MeasurementStation " + + "WHERE river=:river" + + " AND station=:station " + + " AND measurement_type=:measurement_type "); query.setParameter("river", river); query.setParameter("station", station); + query.setParameter("measurement_type", measurementType); List stations = query.list(); diff -r 84beabb3897c -r 278d8759c92b flys-backend/src/main/java/de/intevation/flys/importer/parsers/MeasurementStationsParser.java --- a/flys-backend/src/main/java/de/intevation/flys/importer/parsers/MeasurementStationsParser.java Wed Mar 27 11:46:00 2013 +0100 +++ b/flys-backend/src/main/java/de/intevation/flys/importer/parsers/MeasurementStationsParser.java Wed Mar 27 11:47:56 2013 +0100 @@ -112,16 +112,15 @@ } } - protected ImportRange getRange(String[] cols) - throws MeasurementStationParserException { + protected ImportRange getRange(String[] cols) { if (cols[4] == null || cols[4].length() == 0) { - throw new MeasurementStationParserException("invalid lower range '" - + cols[4] + "'"); + log.warn("No upper value for range found in '" + cols[4] + "'"); + return null; } if (cols[5] == null || cols[5].length() == 0) { - throw new MeasurementStationParserException("invalid lower range '" - + cols[5] + "'"); + log.warn("No upper value for range found in '" + cols[5] + "'"); + return null; } try { @@ -131,8 +130,8 @@ return new ImportRange(new BigDecimal(lower), new BigDecimal(upper)); } catch (ParseException e) { - throw new MeasurementStationParserException( - "unable to parse range: " + e.getMessage()); + log.warn("unable to parse range: " + e.getMessage()); + return null; } } @@ -150,21 +149,17 @@ return cols[3]; } - protected String getGauge(String[] cols) - throws MeasurementStationParserException { + protected String getGauge(String[] cols) { if (cols[6] == null || cols[6].length() == 0) { - throw new MeasurementStationParserException("invalid gauge '" - + cols[6] + "'"); + log.warn("invalid gauge found: '" + cols[6] + "'"); } return cols[6]; } - protected ImportTimeInterval getObservationTimerange(String[] cols) - throws MeasurementStationParserException { + protected ImportTimeInterval getObservationTimerange(String[] cols) { if (cols[8] == null || cols[8].length() == 0) { - throw new MeasurementStationParserException( - "invalid observation time '" + cols[8] + "'"); + log.warn("Found invalid observation time '" + cols[8] + "'"); } try { @@ -173,13 +168,13 @@ if (date != null) { return new ImportTimeInterval(date); } - - throw new MeasurementStationParserException( - "invalid observation time '" + cols[8] + "'"); + log.warn("Observation time date invalid: '" + cols[8] + "'"); } catch (ParseException pe) { - throw new MeasurementStationParserException(pe.getMessage()); + log.warn("Observation time date not parseable: '" + cols[8] + "'"); + return null; } + return null; } protected String getOperator(String[] cols) {