Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModulePreferencesModel.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModulePreferencesModel.java	(revision 32903)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModulePreferencesModel.java	(revision 32904)
@@ -11,8 +11,8 @@
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Observable;
 import java.util.Set;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.util.ChangeNotifier;
 import org.openstreetmap.josm.plugins.opendata.OdPlugin;
 import org.openstreetmap.josm.plugins.opendata.core.OdConstants;
@@ -20,5 +20,5 @@
 import org.openstreetmap.josm.plugins.opendata.core.modules.ModuleInformation;
 
-public class ModulePreferencesModel extends Observable {
+public class ModulePreferencesModel extends ChangeNotifier {
     private final ArrayList<ModuleInformation> availableModules = new ArrayList<>();
     private final ArrayList<ModuleInformation> displayedModules = new ArrayList<>();
@@ -51,6 +51,5 @@
         }
         filterExpression = filter;
-        clearChanged();
-        notifyObservers();
+        fireStateChanged();
     }
 
@@ -71,6 +70,5 @@
             }
         }
-        clearChanged();
-        notifyObservers();
+        fireStateChanged();
     }
 
@@ -106,6 +104,5 @@
             }
         }
-        clearChanged();
-        notifyObservers();
+        fireStateChanged();
     }
 
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/OdsDocument.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/OdsDocument.java	(revision 32903)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/OdsDocument.java	(revision 32904)
@@ -12,7 +12,7 @@
 import org.jopendocument.model.OpenDocument;
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.Utils;
 import org.xml.sax.InputSource;
 import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.XMLReaderFactory;
 
 public class OdsDocument extends OpenDocument {
@@ -21,7 +21,7 @@
         loadFrom(in);
     }
-    
+
     private InputSource getEntryInputSource(ZipInputStream zis) throws IOException {
-        int n = -1;
+        int n;
         final byte[] buffer = new byte[4096];
         final ByteArrayOutputStream baos = new ByteArrayOutputStream();
@@ -37,9 +37,9 @@
         try {
             final ZipInputStream zis = new ZipInputStream(in);
-            final XMLReader rdr = XMLReaderFactory.createXMLReader();
-            
-            ZipEntry entry = null;
+            final XMLReader rdr = Utils.newSafeSAXParser().getXMLReader();
+
+            ZipEntry entry;
             boolean contentParsed = false;
-            
+
             while (!contentParsed && (entry = zis.getNextEntry()) != null) {
                 if (entry.getName().equals("content.xml")) {
@@ -50,9 +50,9 @@
                 }
             }
-            
-        } catch (final Exception e) {
-            e.printStackTrace();
+
+        } catch (Exception e) {
+            Main.error(e);
         }
-        
+
         init(contentHandler.getBody());
     }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/AbstractModule.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/AbstractModule.java	(revision 32903)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/AbstractModule.java	(revision 32904)
@@ -106,7 +106,7 @@
             if (handlerClass != null) {
                 try {
-                    result.add(handlerClass.newInstance());
-                } catch (InstantiationException | IllegalAccessException t) {
-                    Main.error("Cannot instantiate "+handlerClass+" because of "+t.getClass().getName()+": "+t.getMessage());
+                    result.add(handlerClass.getConstructor().newInstance());
+                } catch (ReflectiveOperationException | IllegalArgumentException | SecurityException t) {
+                    Main.error(t, "Cannot instantiate "+handlerClass+" because of "+t.getClass().getName());
                 }
             }
