changeset 7447:82b8bfb47260

Importer and doc: Warn instead of die if AT- or STA-file is missing for a gauge.
author Tom Gottfried <tom@intevation.de>
date Fri, 25 Oct 2013 16:57:15 +0200
parents 0917a5cd384b
children e5e25586189c
files backend/doc/documentation/de/importer-hydr-morph.tex backend/src/main/java/org/dive4elements/river/importer/parsers/AtFileParser.java backend/src/main/java/org/dive4elements/river/importer/parsers/PegelGltParser.java backend/src/main/java/org/dive4elements/river/importer/parsers/StaFileParser.java
diffstat 4 files changed, 35 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/backend/doc/documentation/de/importer-hydr-morph.tex	Fri Oct 25 14:32:11 2013 +0200
+++ b/backend/doc/documentation/de/importer-hydr-morph.tex	Fri Oct 25 16:57:15 2013 +0200
@@ -65,10 +65,10 @@
 kann diese Option erst genutzt werden, wenn sich das Gewässer bereits
 in der Datenbank befindet.
 
-\subsubsection{Pegel-Stammdaten (*.glt, *.at und *.sta-Dateien)}
+\subsubsection{Pegel-Stammdaten (PEGEL.GLT, *.at und *.sta-Dateien)}
 Der Import von Pegel- und Stammdaten kann mit \textbf{'-Dflys.backend.importer.skip.gauges=true'}
-unterdrückt werden. Die *.glt-Datei, die neben der Basis-*.wst-Datei liegt, wird zuerst
-ausgelesen. Es werden nur Stammdaten von Pegeln geladen, die in der .glt-Datei
+unterdrückt werden. Die PEGEL.GLT-Datei, die neben der Basis-*.wst-Datei liegt, wird zuerst
+ausgelesen. Es werden nur Stammdaten von Pegeln geladen, die in der PEGEL.GLT-Datei
 vermerkt sind.
 
 Die System-Property \textbf{flys.backend.main.value.types} kann einen String
@@ -525,6 +525,10 @@
 \textbf{cannot read gauges from 'XYZ'}
 \\Die Pegelgültigkeiten können nicht gelesen werden.
 
+\textbf{'XYZ' does not exist. Gauge ignored.}
+\\Ein in PEGEL.GLT gegebener Pegel wird ignoriert, 
+weil die gegebene *.sta- oder *.at-Datei nicht vorhanden ist.
+
 \textbf{HYK file 'XYZ' seems to be a duplicate.}
 \\Die HYK-Datei wurde unter anderem Namen aber gleichen Inhalts bereits
 gefunden.
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/AtFileParser.java	Fri Oct 25 14:32:11 2013 +0200
+++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/AtFileParser.java	Fri Oct 25 16:57:15 2013 +0200
@@ -8,6 +8,7 @@
 
 package org.dive4elements.river.importer.parsers;
 
+import java.io.FileNotFoundException;
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileInputStream;
@@ -142,6 +143,9 @@
         catch (NumberFormatException pe) {
             logger.warn("AT: invalid number " + pe.getMessage());
         }
+        catch (FileNotFoundException fnfe) {
+            logger.error(fnfe.getMessage());
+        }
         finally {
             if (br != null) {
                 br.close();
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/PegelGltParser.java	Fri Oct 25 14:32:11 2013 +0200
+++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/PegelGltParser.java	Fri Oct 25 16:57:15 2013 +0200
@@ -97,7 +97,17 @@
                     log.debug("\tat: " + atFile);
                 }
 
-                gauges.add(new ImportGauge(range, staFile, atFile));
+                if (staFile.exists() && atFile.exists()) {
+                    gauges.add(new ImportGauge(range, staFile, atFile));
+                }
+                else {
+                    if (!staFile.exists()) {
+                        log.warn(staFile + " does not exist. Gauge ignored.");
+                    }
+                    if (!atFile.exists()) {
+                        log.warn(atFile + " does not exist. Gauge ignored.");
+                    }
+                }
             }
         }
         finally {
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/StaFileParser.java	Fri Oct 25 14:32:11 2013 +0200
+++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/StaFileParser.java	Fri Oct 25 16:57:15 2013 +0200
@@ -10,6 +10,7 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.io.FileNotFoundException;
 import java.io.LineNumberReader;
 import java.io.FileInputStream;
 import java.io.InputStreamReader;
@@ -51,12 +52,13 @@
         File file = gauge.getStaFile();
 
         log.info("parsing STA file: " + file);
-        LineNumberReader in =
-            new LineNumberReader(
-            new InputStreamReader(
-            new FileInputStream(file), ENCODING));
 
+        LineNumberReader in = null;
         try {
+            in = new LineNumberReader(
+                new InputStreamReader(
+                new FileInputStream(file), ENCODING));
+
             String line = in.readLine();
 
             if (line == null) {
@@ -186,8 +188,14 @@
             gauge.setNamedMainValues(namedMainValues);
             gauge.setMainValues(mainValues);
         }
+        catch (FileNotFoundException fnfe) {
+            log.error(fnfe.getMessage());
+            return false;
+        }
         finally {
-            in.close();
+            if (in != null) {
+                in.close();
+            }
         }
         log.info("finished parsing STA file: " + file);
         return true;

http://dive4elements.wald.intevation.org