Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/TabReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/TabReader.java	(revision 34181)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/TabReader.java	(revision 34185)
@@ -17,4 +17,5 @@
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
+import org.openstreetmap.josm.io.IllegalDataException;
 import org.openstreetmap.josm.plugins.opendata.core.OdConstants;
 import org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler;
@@ -37,5 +38,5 @@
 
     public static DataSet parseDataSet(InputStream in, File file,
-            AbstractDataSetHandler handler, ProgressMonitor instance) throws IOException {
+            AbstractDataSetHandler handler, ProgressMonitor instance) throws IOException, IllegalDataException {
         return new TabReader(handler).parse(in, file, instance, Charset.forName(OdConstants.ISO8859_15));
     }
@@ -74,5 +75,5 @@
     }
 
-    private DataSet parse(InputStream in, File file, ProgressMonitor instance, Charset charset) throws IOException {
+    private DataSet parse(InputStream in, File file, ProgressMonitor instance, Charset charset) throws IOException, IllegalDataException {
         headerReader = new BufferedReader(new InputStreamReader(in, charset));
         parseHeader();
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/CsvReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/CsvReader.java	(revision 34181)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/CsvReader.java	(revision 34185)
@@ -10,4 +10,5 @@
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
+import org.openstreetmap.josm.io.IllegalDataException;
 import org.openstreetmap.josm.plugins.opendata.core.OdConstants;
 import org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler;
@@ -33,5 +34,6 @@
     }
 
-    public static DataSet parseDataSet(InputStream in, AbstractDataSetHandler handler, ProgressMonitor instance) throws IOException {
+    public static DataSet parseDataSet(InputStream in, AbstractDataSetHandler handler, ProgressMonitor instance)
+            throws IOException, IllegalDataException {
         CsvHandler csvHandler = null;
         if (handler != null && handler.getSpreadSheetHandler() instanceof CsvHandler) {
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/OdsReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/OdsReader.java	(revision 34181)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/OdsReader.java	(revision 34185)
@@ -15,4 +15,5 @@
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
+import org.openstreetmap.josm.io.IllegalDataException;
 import org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler;
 import org.openstreetmap.josm.tools.Logging;
@@ -32,5 +33,5 @@
 
     public static DataSet parseDataSet(InputStream in,
-            AbstractDataSetHandler handler, ProgressMonitor instance) throws IOException {
+            AbstractDataSetHandler handler, ProgressMonitor instance) throws IOException, IllegalDataException {
         return new OdsReader(handler != null ? handler.getSpreadSheetHandler() : null).parse(in, instance);
     }
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetReader.java	(revision 34181)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetReader.java	(revision 34185)
@@ -94,5 +94,5 @@
     }
 
-    public DataSet doParse(String[] header, ProgressMonitor progressMonitor) throws IOException {
+    public DataSet doParse(String[] header, ProgressMonitor progressMonitor) throws IOException, IllegalDataException {
         Logging.info("Header: "+Arrays.toString(header));
 
@@ -150,5 +150,5 @@
             if (!handlerOK) {
                 if (GraphicsEnvironment.isHeadless()) {
-                    throw new IllegalArgumentException("No valid coordinates have been found and cannot prompt user in headless mode.");
+                    throw new IllegalDataException("No valid coordinates have been found and cannot prompt user in headless mode.");
                 }
                 // TODO: filter proposed projections with min/max values ?
@@ -163,5 +163,5 @@
 
         } else {
-            throw new IllegalArgumentException(tr("No valid coordinates have been found."));
+            throw new IllegalDataException(tr("No valid coordinates have been found."));
         }
 
@@ -195,5 +195,6 @@
 
             if (fields.length > header.length) {
-                Logging.warn(tr("Invalid file. Bad length on line {0}. Expected {1} columns, got {2}.", lineNumber, header.length, fields.length));
+                Logging.warn(
+                        tr("Invalid file. Bad length on line {0}. Expected {1} columns, got {2}.", lineNumber, header.length, fields.length));
                 Logging.warn(Arrays.toString(fields));
             }
@@ -268,5 +269,5 @@
     }
 
-    public final DataSet parse(InputStream in, ProgressMonitor progressMonitor) throws IOException {
+    public final DataSet parse(InputStream in, ProgressMonitor progressMonitor) throws IOException, IllegalDataException {
 
         initResources(in, progressMonitor);
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/XlsReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/XlsReader.java	(revision 34181)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/XlsReader.java	(revision 34185)
@@ -16,4 +16,5 @@
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
+import org.openstreetmap.josm.io.IllegalDataException;
 import org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler;
 import org.openstreetmap.josm.tools.Logging;
@@ -30,5 +31,5 @@
 
     public static DataSet parseDataSet(InputStream in,
-            AbstractDataSetHandler handler, ProgressMonitor instance) throws IOException {
+            AbstractDataSetHandler handler, ProgressMonitor instance) throws IOException, IllegalDataException {
         return new XlsReader(handler != null ? handler.getSpreadSheetHandler() : null).parse(in, instance);
     }
