Index: /applications/editors/josm/plugins/opendata/build.xml
===================================================================
--- /applications/editors/josm/plugins/opendata/build.xml	(revision 33244)
+++ /applications/editors/josm/plugins/opendata/build.xml	(revision 33245)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <project name="opendata" default="dist" basedir=".">
-    <property name="plugin.main.version" value="11772"/>
+    <property name="plugin.main.version" value="11919"/>
     <property name="plugin.author" value="Don-vip"/>
     <property name="plugin.class" value="org.openstreetmap.josm.plugins.opendata.OdPlugin"/>
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/OdConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/OdConstants.java	(revision 33244)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/OdConstants.java	(revision 33245)
@@ -29,5 +29,5 @@
      * Preferences
      */
-/*    public static final String PREF_COORDINATES = "opendata.coordinates";
+    /*    public static final String PREF_COORDINATES = "opendata.coordinates";
     public static final String VALUE_CC9ZONES = "cc9zones";
     public static final String VALUE_WGS84 = "wgs84";*/
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NeptuneReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NeptuneReader.java	(revision 33244)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NeptuneReader.java	(revision 33245)
@@ -32,4 +32,5 @@
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.io.AbstractReader;
+import org.openstreetmap.josm.io.IllegalDataException;
 import org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler;
 import org.openstreetmap.josm.plugins.opendata.core.datasets.fr.FrenchConstants;
@@ -112,5 +113,5 @@
             }
         } catch (IOException e) {
-            Main.error(e.getMessage());
+            Main.error(e);
         }
 
@@ -118,6 +119,6 @@
     }
 
-    public static DataSet parseDataSet(InputStream in, AbstractDataSetHandler handler, ProgressMonitor instance) throws JAXBException {
-        return new NeptuneReader().parse(in, instance);
+    public static DataSet parseDataSet(InputStream in, AbstractDataSetHandler handler, ProgressMonitor instance) throws IllegalDataException {
+        return new NeptuneReader().doParseDataSet(in, instance);
     }
 
@@ -243,6 +244,11 @@
     }
 
-    private DataSet parse(InputStream in, ProgressMonitor instance) throws JAXBException {
-        root = unmarshal(ChouettePTNetworkType.class, in);
+    @Override
+    protected DataSet doParseDataSet(InputStream in, ProgressMonitor instance) throws IllegalDataException {
+        try {
+            root = unmarshal(ChouettePTNetworkType.class, in);
+        } catch (JAXBException e) {
+            throw new IllegalDataException(e);
+        }
 
         Relation network = createNetwork(root.getPTNetwork());
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/OverpassApi.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/OverpassApi.java	(revision 33244)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/OverpassApi.java	(revision 33245)
@@ -43,5 +43,5 @@
     }
 
-    public static final String union(String ... queries) {
+    public static final String union(String... queries) {
         String result = "<union>\n";
         for (String query : queries) {
@@ -54,5 +54,5 @@
     }
 
-    public static final String query(String bbox, OaQueryType type, String ... conditions) {
+    public static final String query(String bbox, OaQueryType type, String... conditions) {
         String result = "<query type=\""+type+"\" >\n";
         if (bbox != null) {
@@ -72,5 +72,5 @@
     }
 
-    public static final String recurse(OaRecurseType ... types) {
+    public static final String recurse(OaRecurseType... types) {
         String result = "";
         for (OaRecurseType type : types) {
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/XmlImporter.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/XmlImporter.java	(revision 33244)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/XmlImporter.java	(revision 33245)
@@ -7,6 +7,4 @@
 import java.io.InputStream;
 import java.net.URL;
-
-import javax.xml.bind.JAXBException;
 
 import org.openstreetmap.josm.actions.ExtensionFileFilter;
@@ -24,5 +22,5 @@
         super(XML_FILE_FILTER);
     }
-    
+
     @Override
     public boolean acceptFile(File pathname) {
@@ -40,9 +38,5 @@
     protected DataSet parseDataSet(InputStream in, ProgressMonitor instance)
             throws IllegalDataException {
-        try {
-            return NeptuneReader.parseDataSet(in, handler, instance);
-        } catch (JAXBException e) {
-            throw new IllegalDataException(e);
-        }
+        return NeptuneReader.parseDataSet(in, handler, instance);
     }
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ArchiveReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ArchiveReader.java	(revision 33244)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ArchiveReader.java	(revision 33245)
@@ -6,4 +6,5 @@
 import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -13,5 +14,4 @@
 import java.util.Map;
 
-import javax.xml.bind.JAXBException;
 import javax.xml.stream.FactoryConfigurationError;
 import javax.xml.stream.XMLStreamException;
@@ -21,4 +21,5 @@
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.io.AbstractReader;
+import org.openstreetmap.josm.io.IllegalDataException;
 import org.openstreetmap.josm.plugins.opendata.OdPlugin;
 import org.openstreetmap.josm.plugins.opendata.core.OdConstants;
@@ -57,5 +58,5 @@
     }
 
-    protected abstract void extractArchive(final File temp, final List<File> candidates) throws IOException, FileNotFoundException;
+    protected abstract void extractArchive(File temp, List<File> candidates) throws IOException, FileNotFoundException;
 
     protected abstract String getTaskMessage();
@@ -86,5 +87,5 @@
 
     public Map<File, DataSet> parseDocs(final ProgressMonitor progressMonitor)
-            throws IOException, XMLStreamException, FactoryConfigurationError, JAXBException {
+            throws IOException, XMLStreamException, FactoryConfigurationError, IllegalDataException {
         Map<File, DataSet> result = new HashMap<>();
         File temp = OdUtils.createTempDir();
@@ -107,5 +108,5 @@
 
     public DataSet parseDoc(final ProgressMonitor progressMonitor)
-            throws IOException, XMLStreamException, FactoryConfigurationError, JAXBException {
+            throws IOException, XMLStreamException, FactoryConfigurationError, IllegalDataException {
         File temp = OdUtils.createTempDir();
 
@@ -133,6 +134,11 @@
     }
 
+    @Override
+    protected DataSet doParseDataSet(InputStream source, ProgressMonitor progressMonitor) throws IllegalDataException {
+        return null;
+    }
+
     protected DataSet getDataForFile(File f, final ProgressMonitor progressMonitor)
-            throws FileNotFoundException, IOException, XMLStreamException, FactoryConfigurationError, JAXBException {
+            throws FileNotFoundException, IOException, XMLStreamException, FactoryConfigurationError, IllegalDataException {
         if (f == null) {
             return null;
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/SevenZipReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/SevenZipReader.java	(revision 33244)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/SevenZipReader.java	(revision 33245)
@@ -14,5 +14,4 @@
 import java.util.Map;
 
-import javax.xml.bind.JAXBException;
 import javax.xml.stream.FactoryConfigurationError;
 import javax.xml.stream.XMLStreamException;
@@ -27,4 +26,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.plugins.opendata.core.util.OdUtils;
@@ -54,10 +54,10 @@
 
     public static DataSet parseDataSet(InputStream in, AbstractDataSetHandler handler, ProgressMonitor instance, boolean promptUser)
-            throws IOException, XMLStreamException, FactoryConfigurationError, JAXBException {
+            throws IOException, XMLStreamException, FactoryConfigurationError, IllegalDataException {
         return new SevenZipReader(in, handler, promptUser).parseDoc(instance);
     }
 
     public static Map<File, DataSet> parseDataSets(InputStream in, AbstractDataSetHandler handler, ProgressMonitor instance, boolean promptUser)
-            throws IOException, XMLStreamException, FactoryConfigurationError, JAXBException {
+            throws IOException, XMLStreamException, FactoryConfigurationError, IllegalDataException {
         return new SevenZipReader(in, handler, promptUser).parseDocs(instance);
     }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ZipImporter.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ZipImporter.java	(revision 33244)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ZipImporter.java	(revision 33245)
@@ -5,5 +5,9 @@
 
 import java.io.File;
+import java.io.IOException;
 import java.io.InputStream;
+
+import javax.xml.stream.FactoryConfigurationError;
+import javax.xml.stream.XMLStreamException;
 
 import org.openstreetmap.josm.actions.ExtensionFileFilter;
@@ -28,5 +32,5 @@
         try {
             return ZipReader.parseDataSet(in, handler, instance, true);
-        } catch (Exception e) {
+        } catch (IOException | XMLStreamException | FactoryConfigurationError e) {
             throw new IllegalDataException(e);
         }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ZipReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ZipReader.java	(revision 33244)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ZipReader.java	(revision 33245)
@@ -14,5 +14,4 @@
 import java.util.zip.ZipInputStream;
 
-import javax.xml.bind.JAXBException;
 import javax.xml.stream.FactoryConfigurationError;
 import javax.xml.stream.XMLStreamException;
@@ -21,4 +20,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;
 
@@ -35,10 +35,10 @@
 
     public static DataSet parseDataSet(InputStream in, AbstractDataSetHandler handler, ProgressMonitor instance, boolean promptUser)
-            throws IOException, XMLStreamException, FactoryConfigurationError, JAXBException {
+            throws IOException, XMLStreamException, FactoryConfigurationError, IllegalDataException {
         return new ZipReader(in, handler, promptUser).parseDoc(instance);
     }
 
     public static Map<File, DataSet> parseDataSets(InputStream in, AbstractDataSetHandler handler, ProgressMonitor instance, boolean promptUser)
-            throws IOException, XMLStreamException, FactoryConfigurationError, JAXBException {
+            throws IOException, XMLStreamException, FactoryConfigurationError, IllegalDataException {
         return new ZipReader(in, handler, promptUser).parseDocs(instance);
     }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/AbstractMapInfoReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/AbstractMapInfoReader.java	(revision 33244)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/AbstractMapInfoReader.java	(revision 33245)
@@ -5,4 +5,5 @@
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.nio.charset.Charset;
 import java.nio.charset.IllegalCharsetNameException;
@@ -13,5 +14,8 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.io.AbstractReader;
+import org.openstreetmap.josm.io.IllegalDataException;
 import org.openstreetmap.josm.plugins.opendata.core.OdConstants;
 
@@ -38,4 +42,10 @@
     protected int numcolumns = -1;
     protected List<String> columns;
+
+    @Override
+    protected DataSet doParseDataSet(InputStream source,
+            ProgressMonitor progressMonitor) throws IllegalDataException {
+        return null;
+    }
 
     protected final File getDataFile(File headerFile, String extension) {
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GeographicReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GeographicReader.java	(revision 33244)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GeographicReader.java	(revision 33245)
@@ -6,4 +6,5 @@
 import java.awt.Component;
 import java.awt.GraphicsEnvironment;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -36,4 +37,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -43,5 +45,7 @@
 import org.openstreetmap.josm.data.validation.tests.DuplicateWay;
 import org.openstreetmap.josm.gui.ExtendedDialog;
+import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.io.AbstractReader;
+import org.openstreetmap.josm.io.IllegalDataException;
 import org.openstreetmap.josm.plugins.opendata.core.OdConstants;
 import org.openstreetmap.josm.plugins.opendata.core.gui.DialogPrompter;
@@ -79,4 +83,9 @@
         this.handler = handler;
         this.defaultHandlers = defaultHandlers;
+    }
+
+    @Override
+    protected DataSet doParseDataSet(InputStream source, ProgressMonitor progressMonitor) throws IllegalDataException {
+        return null;
     }
 
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/KmlReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/KmlReader.java	(revision 33244)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/KmlReader.java	(revision 33245)
@@ -26,4 +26,5 @@
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.io.AbstractReader;
+import org.openstreetmap.josm.io.IllegalDataException;
 import org.openstreetmap.josm.io.UTFInputStreamReader;
 import org.openstreetmap.josm.plugins.opendata.core.OdConstants;
@@ -60,4 +61,10 @@
         XMLStreamReader parser = XMLInputFactory.newInstance().createXMLStreamReader(ir);
         return new KmlReader(parser).parseDoc();
+    }
+
+    @Override
+    protected DataSet doParseDataSet(InputStream source,
+            ProgressMonitor progressMonitor) throws IllegalDataException {
+        return null;
     }
 
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/KmzReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/KmzReader.java	(revision 33244)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/KmzReader.java	(revision 33245)
@@ -16,4 +16,5 @@
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.io.AbstractReader;
+import org.openstreetmap.josm.io.IllegalDataException;
 
 public class KmzReader extends AbstractReader {
@@ -28,4 +29,10 @@
             throws IOException, XMLStreamException, FactoryConfigurationError {
         return new KmzReader(new ZipInputStream(in)).parseDoc(instance);
+    }
+
+    @Override
+    protected DataSet doParseDataSet(InputStream source,
+            ProgressMonitor progressMonitor) throws IllegalDataException {
+        return null;
     }
 
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 33244)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetReader.java	(revision 33245)
@@ -25,4 +25,5 @@
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.io.AbstractReader;
+import org.openstreetmap.josm.io.IllegalDataException;
 import org.openstreetmap.josm.plugins.opendata.core.OdConstants;
 import org.openstreetmap.josm.plugins.opendata.core.gui.ChooserLauncher;
@@ -84,4 +85,10 @@
         }
         return col;
+    }
+
+    @Override
+    protected DataSet doParseDataSet(InputStream source,
+            ProgressMonitor progressMonitor) throws IllegalDataException {
+        return null;
     }
 
