Hi all,
I noticed that splitter is quite relaxed regarding error handling ;-)
For example, all kinds of I/O errors are catched and may produce
stack traces, but processing continues with more or less useless
results. Example stdout for a corrupted o5m input :
Processing test.o5m
java.io.IOException: wrong header byte 13
at uk.me.parabola.splitter.O5mMapParser.parse(O5mMapParser.java:124)
at uk.me.parabola.splitter.Main.processOSMFiles(Main.java:1379)
at uk.me.parabola.splitter.Main.processMap(Main.java:891)
at uk.me.parabola.splitter.Main.calculateAreas(Main.java:579)
at uk.me.parabola.splitter.Main.split(Main.java:259)
at uk.me.parabola.splitter.Main.start(Main.java:180)
at uk.me.parabola.splitter.Main.main(Main.java:152)
in 1 file
Time: Wed May 14 08:24:16 CEST 2014
Failed to calculate areas. See log for details.
Failed to calculate areas.
Sorry. Cannot split the file without creating huge, almost empty, tiles.
Please specify a bounding polygon with the --polygon-file parameter.
Time finished: Wed May 14 08:24:16 CEST 2014
Total time taken: 0s
I think splitter should be changed so that it stops immediately with rc 1 if
- an input file is missing or can't be read (e.g. invalid numbers, corrupted binary files, etc.)
- an output file can't be written (no access rights, disk full, etc)
and a useful error message in stdout and stderr.
I try to code it like this in the new refactoring branch.
I also try to code a new log handling, so that debug info is written to its own file.
Gerd