changeset 4110:06891562e633

Extracted and documented the error messages of the process. flys-aft/trunk@4054 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 16 Feb 2012 11:26:56 +0000
parents 8ba11e13ae8a
children b7059aca60a8
files flys-aft/ChangeLog flys-aft/README.txt flys-aft/src/main/java/de/intevation/aft/DischargeTable.java flys-aft/src/main/java/de/intevation/aft/Notification.java flys-aft/src/main/java/de/intevation/aft/River.java flys-aft/src/main/java/de/intevation/aft/Sync.java flys-aft/src/main/java/de/intevation/aft/SyncContext.java
diffstat 7 files changed, 188 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/flys-aft/ChangeLog	Wed Feb 08 09:43:12 2012 +0000
+++ b/flys-aft/ChangeLog	Thu Feb 16 11:26:56 2012 +0000
@@ -1,3 +1,15 @@
+2012-02-16	Sascha L. Teichmann	<sascha.teichmann@inteavtion.de>
+
+	* README.txt: New. Contains error messages by now. TODO: Write
+	  more about the whole process.
+
+	* src/main/java/de/intevation/aft/SyncContext.java,
+	  src/main/java/de/intevation/aft/DischargeTable.java,
+	  src/main/java/de/intevation/aft/Notification.java,
+	  src/main/java/de/intevation/aft/River.java,
+	  src/main/java/de/intevation/aft/Sync.java:
+	  Adjusted and improved error messages.
+	
 2012-02-08	Sascha L. Teichmann	<sascha.teichmann@inteavtion.de>
 
 	* src/main/resources/sql/flys-common.properties: Insert 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-aft/README.txt	Thu Feb 16 11:26:56 2012 +0000
@@ -0,0 +1,160 @@
+
+
+Fehlermeldungen:
+================
+
+Allgemein:
+----------
+
+SYNC: syncing failed.
+
+    Wärend der Synchronisation ist ein Fehler aufgetreten. Details
+    finden sich in der Regel oberhalb dieser Fehlermeldung.
+
+REPAIR: Cannot open DIPS repair XSLT file.
+    
+    Die zur Reparatur angegebene XSL-Transformation konnte nicht geladen
+    werden.
+
+REPAIR: Fixing DIPS failed.
+
+    Die Anwendung der XSL-Transformation zur Reparatur der DIPS-Daten
+    ist fehlgeschlagen. Datails hierzu sollten sich oberhalb dieser
+    Fehlermeldung zu finden sein.
+
+Benachrichtigung:
+-----------------
+
+NOTIFY: Invalid URL '<URL>'. Ignored.
+
+    Die zur Benachrichtigung angegebene URL ist nicht valide und
+    wird daher ignoriert.
+
+NOTIFY: '<URL>' is not an HTTP(S) connection.
+
+    Die zur Benachrichtigung angegebene URL öffnet keine 
+    HTTP- bzw. HTTPS-Verbindung.
+
+NOTIFY: Sending message to '<URL>' failed.
+
+    Der Versand der Benachrichtigung an die URL ist fehlgeschlagen.
+
+DIPS:
+-----
+
+DIPS: MESSSTELLE '<NAME>' not found in DIPS. Gauge number used for lookup: <NUMMER>
+
+    Es wurde vergeblich versucht, mithilfe einer AFT-Pegelnummer in DIPS
+    ein entsprechendes Gegenstück zu finden.
+
+DIPS: MESSSTELLE '<NAME>' is assigned to river '<FLUSS1>'. Needs to be on '<FLUSS2>'.
+
+    Aus Sicht von AFT wird Messstelle <NAME> an <FLUSS2> erwartet.
+    DIPS ordnet sie aber <FLUSS1> zu.
+
+DIPS: Gauge '<PEGEL>' has no datum. Ignored.
+
+    Der DIPS-Pegel <PEGEL> hat keinen PNP und kann deshalb nicht
+    importiert werden.
+
+DIPS: Setting AEO of gauge '<NAME>' to zero.
+
+    Der AEO-Wert ist bei dem DIPS-Pegel <NAME> nicht gesetzt und
+    wird mit Null angenommen.
+
+DIPS: Setting station of gauge '<NAME>' to zero.
+
+    Der DIPS-Pegel '<NAME>' hat keine zugeordnete Stationierung und
+    es wird angenommen, dass dieser an km 0 liegt.
+
+DIPS: Station of gauge '<NAME>' is zero.
+
+    Im Regelfall ist ein Stationierung an km 0 ein Datenfehler.
+
+DIPS: Cannot find '<DATEINAME>'.
+
+    Der Pfad zum XML-Dokument mit den DIPS-Daten konnte nicht gefunden
+    werden.
+
+DIPS: Cannot load DIPS document.
+    
+    Das XML-Dokument mit den DIPS-Daten konnte nicht geladen werden.
+
+DIPS: '<NAME2>' collides with '<NAME1>' on gauge number <NUMMER>.
+
+    In DIPS gibt es zwei Pegel mit NAME1 und NAME2, die dieselbe Pegelnummer
+    haben.
+
+DIPS: Gauge '<NAME>' has invalid gauge number '<NUMBER>'.
+
+    Der DIPS-Pegel Name hat eine Pegelnummer <NUMMER>, die sich nicht
+    in einen 64bit-Integer erwandeln lässt.
+
+AFT:
+----
+
+AFT: ABFLUSSTAFEL_NR = <NUMMER>: <GUELTIG_VON> > <GUELTIG_BIS>. -> swap
+
+    Eine AFT-Abflusstafel hat vertauschte GUELTIG_VON- und GUELTIG_BIS-Werte.
+    Diese werden implizit in die zeitlich richtige Reihenfolge gebracht.
+
+FLYS/AFT: Value duplication w=<W> q=<Q>. -> ignore.
+
+    Beim Laden einer Abflusstafel wurden ein W/Q-Duplikat entdeckt
+    und ignoriert.
+
+AFT: Invalid MESSSTELLE_NR for MESSSTELLE '<NAME>':
+
+    Die Messtellen-Nummer für die Messtelle <NAME> ist ungültig.
+    Erwartet wird ein String, der sich in einen 64bit-Integer umwandeln lässt.
+
+AFT: Found discharge table '<BESCHREIBUNG>' with same description. -> ignore.
+
+    In AFT wurde eine Abflusstafel gefunden, die die gleiche Bezeichnung
+    trägt wie eine andere, die demselben Pegel zugeordnet ist. Somit
+    ist keine eindeutige Zuordnung möglich.
+
+FLYS:
+-----
+
+FLYS: Found discharge table '<BESCHREIBUNG>' with same description. -> ignore
+
+    In FLYS wurde eine Abflusstafel gefunden, die die gleiche Bezeichnung
+    trägt wie eine andere, die demselben Pegel zugeordnet ist. Somit
+    ist keine eindeutige Zuordnung möglich.
+
+FLYS: Gauge '<PEGEL>' has no official number. Ignored.
+
+    Der Pegel <PEGEL> in FYLS hat keinen Pegelnummer und wird deshalb
+    nicht in Betracht gezogen.
+
+FLYS: Gauge '<PEGEL>' number is not found in AFT/DIPS.
+
+    Der Pegel <PEGEL> hat eine Pegelnummer, die aber nicht in AFT/DIPS
+    zu finden ist.
+
+FLYS: discharge table <ID> has no description. Ignored.
+
+    Die Abflusstafel in FLYS hat keine Beschreibung. Diese wird
+    allerdings zum Abgleich mit DIPS/AFT benötigt.
+
+FLYS: Found discharge table '<BESCHREIBUNG>' with same description. -> ignore
+
+    In FLYS wurde eine Abflusstafel gefunden, die die gleiche Bezeichnung
+    trägt wie eine andere, die demselben Pegel zugeordnet ist. Somit
+    ist keine eindeutige Zuordnung möglich.
+
+FLYS: Gauge '<PEGEL>' has no official number. Ignored.
+
+    Der Pegel <PEGEL> in FYLS hat keinen Pegelnummer und wird deshalb
+    nicht in Betracht gezogen.
+
+FLYS: Gauge '<PEGEL>' number is not found in AFT/DIPS.
+
+    Der Pegel <PEGEL> hat eine Pegelnummer, die aber nicht in AFT/DIPS
+    zu finden ist.
+
+FLYS: discharge table <ID> has no description. Ignored.
+
+    Die Abflusstafel in FLYS hat keine Beschreibung. Diese wird
+    allerdings zum Abgleich mit DIPS/AFT benötigt.
--- a/flys-aft/src/main/java/de/intevation/aft/DischargeTable.java	Wed Feb 08 09:43:12 2012 +0000
+++ b/flys-aft/src/main/java/de/intevation/aft/DischargeTable.java	Thu Feb 16 11:26:56 2012 +0000
@@ -103,7 +103,7 @@
             double w  = rs.getDouble("w");
             double q  = rs.getDouble("q");
             if (!values.add(new WQ(id, w, q))) {
-                log.warn("Value duplication w="+w+" q="+q+". -> ignore.");
+                log.warn("FLYS/AFT: Value duplication w="+w+" q="+q+". -> ignore.");
             }
         }
         rs.close();
@@ -229,7 +229,7 @@
             Date to   = rs.getDate("GUELTIG_BIS");
 
             if (from != null && to != null && from.compareTo(to) > 0) {
-                log.warn("AFT: ABFLUSSTAFEL_NR = " 
+                    log.warn("AFT: ABFLUSSTAFEL_NR = " 
                     + dtId + ": " + from + " > " + to + ". -> swap");
                 Date temp = from;
                 from = to;
--- a/flys-aft/src/main/java/de/intevation/aft/Notification.java	Wed Feb 08 09:43:12 2012 +0000
+++ b/flys-aft/src/main/java/de/intevation/aft/Notification.java	Thu Feb 16 11:26:56 2012 +0000
@@ -65,7 +65,7 @@
             URLConnection ucon = url.openConnection();
 
             if (!(ucon instanceof HttpURLConnection)) {
-                log.warn("'" + url + "' is not an HTTP(S) connection.");
+                log.warn("NOTIFY: '" + url + "' is not an HTTP(S) connection.");
                 return null;
             }
 
@@ -84,7 +84,7 @@
             result = XML.parseDocument(in);
         }
         catch (IOException ioe) {
-            log.error("Sending message to '" + url + "' failed.", ioe);
+            log.error("NOTIFY: Sending message to '" + url + "' failed.", ioe);
         }
         finally {
             if (out != null) {
--- a/flys-aft/src/main/java/de/intevation/aft/River.java	Wed Feb 08 09:43:12 2012 +0000
+++ b/flys-aft/src/main/java/de/intevation/aft/River.java	Thu Feb 16 11:26:56 2012 +0000
@@ -55,20 +55,20 @@
             String num  = messstellenRs.getString("MESSSTELLE_NR");
             Long number = SyncContext.numberToLong(num);
             if (number == null) {
-                log.warn("Invalid MESSSTELLE_NR for MESSSTELLE '"+name+"'");
+                log.warn("AFT: Invalid MESSSTELLE_NR for MESSSTELLE '"+name+"'");
                 continue;
             }
             DIPSGauge dipsGauge = dipsGauges.get(number);
             if (dipsGauge == null) {
                 log.warn(
-                    "MESSSTELLE '" + name + "' not found in DIPS. " +
+                    "DIPS: MESSSTELLE '" + name + "' not found in DIPS. " +
                     "Gauge number used for lookup: " + number);
                 continue;
             }
             String gaugeRiver = dipsGauge.getRiverName();
             if (!gaugeRiver.equalsIgnoreCase(riverName)) {
                 log.warn(
-                    "MESSSTELLE '" + name + 
+                    "DIPS: MESSSTELLE '" + name + 
                     "' is assigned to river '" + gaugeRiver + 
                     "'. Needs to be on '" + riverName + "'.");
                 continue;
@@ -254,7 +254,7 @@
                 "' not in FLYS but in AFT/DIPS. -> Create");
 
             if (!gauge.hasDatums()) {
-                log.warn("FLYS: Gauge '" + 
+                log.warn("DIPS: Gauge '" + 
                     gauge.getAftName() + "' has no datum. Ignored.");
                 continue;
             }
--- a/flys-aft/src/main/java/de/intevation/aft/Sync.java	Wed Feb 08 09:43:12 2012 +0000
+++ b/flys-aft/src/main/java/de/intevation/aft/Sync.java	Thu Feb 16 11:26:56 2012 +0000
@@ -52,7 +52,7 @@
                 url = new URL(urlString);
             }
             catch (MalformedURLException mfue) {
-                log.warn("Invalid URL '" + urlString + "'. Ignored.", mfue);
+                log.warn("NOTIFY: Invalid URL '" + urlString + "'. Ignored.", mfue);
                 continue;
             }
 
@@ -94,14 +94,14 @@
         File dipsFile = new File(dipsF);
 
         if (!dipsFile.isFile() || !dipsFile.canRead()) {
-            log.error("Cannot find '" + dipsF + "'");
+            log.error("DIPS: Cannot find '" + dipsF + "'.");
             System.exit(1);
         }
 
         Document dips = XML.parseDocument(dipsFile, Boolean.FALSE);
 
         if (dips == null) {
-            log.error("Cannot load DIPS document.");
+            log.error("DIPS: Cannot load DIPS document.");
             System.exit(1);
         }
 
@@ -111,12 +111,12 @@
         if (repairF != null && repairF.length() > 0) {
             File repairFile = new File(repairF);
             if (!repairFile.isFile() || !repairFile.canRead()) {
-                log.warn("Cannot open DIPS repair XSLT file.");
+                log.warn("REPAIR: Cannot open DIPS repair XSLT file.");
             }
             else {
                 Document fixed = XML.transform(dips, repairFile);
                 if (fixed == null) {
-                    log.warn("Fixing DIPS failed");
+                    log.warn("REPAIR: Fixing DIPS failed.");
                 }
                 else {
                     dips = fixed;
@@ -145,7 +145,7 @@
             modified = rivers.sync(syncContext);
         }
         catch (SQLException sqle) {
-            log.error("syncing failed", sqle);
+            log.error("SYNC: Syncing failed.", sqle);
             exitCode = 1;
         }
         finally {
--- a/flys-aft/src/main/java/de/intevation/aft/SyncContext.java	Wed Feb 08 09:43:12 2012 +0000
+++ b/flys-aft/src/main/java/de/intevation/aft/SyncContext.java	Thu Feb 16 11:26:56 2012 +0000
@@ -105,8 +105,8 @@
                 }
             }
             else {
-                log.warn("DIPS: gauge '" + element.getAttribute("NAME") +
-                    "' has invalid gauge number '" + numberString + "'");
+                log.warn("DIPS: Gauge '" + element.getAttribute("NAME") +
+                    "' has invalid gauge number '" + numberString + "'.");
             }
         }
         return map;

http://dive4elements.wald.intevation.org