Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GeotoolsConverter.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GeotoolsConverter.java	(revision 36075)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GeotoolsConverter.java	(revision 36076)
@@ -27,4 +27,5 @@
 import org.locationtech.jts.geom.Point;
 import org.locationtech.jts.geom.Polygon;
+import org.locationtech.jts.io.ParseException;
 import org.opengis.feature.Feature;
 import org.opengis.feature.GeometryAttribute;
@@ -82,5 +83,15 @@
                 FeatureSource<?, ?> featureSource = dataStore.getFeatureSource(typeName);
                 FeatureCollection<?, ?> collection = featureSource.getFeatures();
-                parseFeatures(progressMonitor != null ? progressMonitor.createSubTaskMonitor(1, false) : null, collection);
+                try {
+                    parseFeatures(progressMonitor != null ? progressMonitor.createSubTaskMonitor(1, false) : null, collection);
+                    // Geotools wraps an IOException in a RuntimeException. We want to keep parsing layers, even if we could not understand
+                    // a previous layer.
+                } catch (RuntimeException runtimeException) {
+                    if (runtimeException.getCause() instanceof IOException && runtimeException.getCause().getCause() instanceof ParseException) {
+                        Logging.error(runtimeException);
+                    } else {
+                        throw runtimeException;
+                    }
+                }
             }
         } finally {
