Index: /applications/editors/josm/plugins/opendata/.checkstyle
===================================================================
--- /applications/editors/josm/plugins/opendata/.checkstyle	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/.checkstyle	(revision 32545)
@@ -8,3 +8,13 @@
     <file-match-pattern match-pattern="." include-pattern="true"/>
   </fileset>
+  <filter name="DerivedFiles" enabled="true"/>
+  <filter name="FilesFromPackage" enabled="true">
+    <filter-data value="src/org/geotools"/>
+    <filter-data value="data"/>
+    <filter-data value="images"/>
+    <filter-data value="includes"/>
+    <filter-data value="styles"/>
+    <filter-data value="resources"/>
+    <filter-data value="scripts"/>
+  </filter>
 </fileset-config>
Index: /applications/editors/josm/plugins/opendata/.project
===================================================================
--- /applications/editors/josm/plugins/opendata/.project	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/.project	(revision 32545)
@@ -26,4 +26,9 @@
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
@@ -31,4 +36,5 @@
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 	</natures>
 </projectDescription>
Index: /applications/editors/josm/plugins/opendata/.settings/org.eclipse.jdt.ui.prefs
===================================================================
--- /applications/editors/josm/plugins/opendata/.settings/org.eclipse.jdt.ui.prefs	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/.settings/org.eclipse.jdt.ui.prefs	(revision 32545)
@@ -1,3 +1,62 @@
 eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
 formatter_profile=_JOSM
 formatter_settings_version=12
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=false
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=false
+sp_cleanup.make_local_variable_final=true
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_redundant_type_arguments=true
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=false
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_anonymous_class_creation=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=true
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+sp_cleanup.use_type_arguments=false
Index: /applications/editors/josm/plugins/opendata/build.xml
===================================================================
--- /applications/editors/josm/plugins/opendata/build.xml	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/build.xml	(revision 32545)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <project name="opendata" default="dist" basedir=".">
-    <property name="plugin.main.version" value="10407"/>
+    <property name="plugin.main.version" value="10420"/>
     <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/OdPlugin.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/OdPlugin.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/OdPlugin.java	(revision 32545)
@@ -98,5 +98,5 @@
     }
 
-    public static final OdPlugin getInstance() {
+    public static OdPlugin getInstance() {
         return instance;
     }
@@ -191,5 +191,5 @@
     }
 
-    private final void loadModules() {
+    private void loadModules() {
         List<ModuleInformation> modulesToLoad = ModuleHandler.buildListOfModulesToLoad(Main.parent);
         if (!modulesToLoad.isEmpty() && ModuleHandler.checkAndConfirmModuleUpdate(Main.parent)) {
@@ -201,5 +201,5 @@
     }
 
-    private final File getSubDirectory(String name) {
+    private File getSubDirectory(String name) {
         File dir = new File(getPluginDir()+File.separator+name);
         if (!dir.exists()) {
@@ -209,9 +209,9 @@
     }
 
-    public final File getModulesDirectory() {
+    public File getModulesDirectory() {
         return getSubDirectory("modules");
     }
 
-    public final File getResourcesDirectory() {
+    public File getResourcesDirectory() {
         return getSubDirectory("resources");
     }
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 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/OdConstants.java	(revision 32545)
@@ -10,5 +10,5 @@
 
 public abstract class OdConstants {
-    
+
     /**
      * Encodings
@@ -20,10 +20,10 @@
     public static final String CP1252 = "Cp1252";
     public static final String MAC_ROMAN = "MacRoman";
-    
+
     /**
      * Patterns
      */
     public static final String PATTERN_LANG = "{lang}";
-    
+
     /**
      * Preferences
@@ -35,5 +35,5 @@
     public static final String PREF_OAPI = "opendata.oapi";
     public static final String DEFAULT_OAPI = "http://www.overpass-api.de/api/interpreter?";
-    
+
     public static final String PREF_XAPI = "opendata.xapi";
     public static final String DEFAULT_XAPI = "http://www.overpass-api.de/api/xapi?";
@@ -50,6 +50,6 @@
     public static final String PREF_MODULES = "opendata.modules";
     public static final String PREF_MODULES_SITES = "opendata.modules.sites";
-    public final static String OSM_SITE = "http://svn.openstreetmap.org/applications/editors/josm/plugins/opendata/";
-    public final static String[] DEFAULT_MODULE_SITES = {OSM_SITE + "modules.txt%<?modules=>"};
+    public static final String OSM_SITE = "http://svn.openstreetmap.org/applications/editors/josm/plugins/opendata/";
+    public static final String[] DEFAULT_MODULE_SITES = {OSM_SITE + "modules.txt%<?modules=>"};
 
     public static final String PREF_CRS_COMPARISON_TOLERANCE = "opendata.crs.comparison_tolerance";
@@ -64,5 +64,5 @@
     public static final String ICON_CORE_24 = "o24.png";
     public static final String ICON_CORE_48 = "o48.png";
-    
+
     public static final String ICON_OSM_16 = "osm16.png";
     public static final String ICON_OSM_24 = "osm24.png";
@@ -90,5 +90,5 @@
     public static final String JAR_EXT = "jar";
     public static final String XML_EXT = "xml";
-    
+
     /**
      * Protocols
@@ -96,5 +96,5 @@
     public static final String PROTO_FILE = "file://";
     public static final String PROTO_RSRC = "resource://";
-    
+
     /**
      * Coordinates fields
@@ -102,8 +102,9 @@
     public static final String X_STRING = "X|LON|LONGI|.*LONGITUDE.*|EASTING";
     public static final String Y_STRING = "Y|LAT|LATI|.*LATITUDE.*|NORTHING";
-    
+
     // The list of all ProjectionPatterns (filled at each constructor call)
     public static final Collection<ProjectionPatterns> PROJECTIONS = new ArrayList<>();
-    
+
+    // CHECKSTYLE.OFF: LineLength
     public static final ProjectionPatterns PRJ_WGS84 = new ProjectionPatterns("GPS|WGS84|°décimaux", Projections.getProjectionByCode("EPSG:4326"));
     public static final ProjectionPatterns PRJ_LAMBERT_93 = new ProjectionPatterns("LAMB93|L93", Projections.getProjectionByCode("EPSG:2154"));
@@ -112,4 +113,5 @@
     public static final ProjectionPatterns PRJ_LAMBERT_1972 = new ProjectionPatterns("LAMB72|LAMB1972", Projections.getProjectionByCode("EPSG:31370"));
     public static final ProjectionPatterns PRJ_LAMBERT_2008 = new ProjectionPatterns("LAMB08|LAMB2008", Projections.getProjectionByCode("EPSG:3812"));
+    // CHECKSTYLE.ON: LineLength
 
     // Must always be declared last
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/actions/DownloadDataTask.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/actions/DownloadDataTask.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/actions/DownloadDataTask.java	(revision 32545)
@@ -28,5 +28,5 @@
 
     private AbstractDataSetHandler handler;
-    
+
     @Override
     public Future<?> download(boolean newLayer, Bounds downloadArea, ProgressMonitor progressMonitor) {
@@ -63,5 +63,5 @@
         return false;
     }
-    
+
     @Override
     public String[] getPatterns() {
@@ -89,6 +89,6 @@
         @Override
         protected OsmDataLayer createNewLayer(String layerName) {
-            File associatedFile = ((NetworkReader)reader).getReadFile();
-            String filename = ((NetworkReader)reader).getReadFileName();
+            File associatedFile = ((NetworkReader) reader).getReadFile();
+            String filename = ((NetworkReader) reader).getReadFileName();
             if (layerName == null || layerName.isEmpty()) {
                 if (associatedFile != null) {
@@ -104,5 +104,5 @@
         }
     }
-    
+
     /**
      * returns true if the user accepts the license, false if they refuse
@@ -114,5 +114,5 @@
         try {
             return new AskLicenseAgreementDialog(license).showDialog().getValue() == 1;
-            
+
         } catch (IOException e) {
             JOptionPane.showMessageDialog(Main.parent, tr("License URL not available: {0}", license.toString()));
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/AbstractDataSetHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/AbstractDataSetHandler.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/AbstractDataSetHandler.java	(revision 32545)
@@ -21,6 +21,6 @@
 import org.openstreetmap.josm.io.AbstractReader;
 import org.openstreetmap.josm.plugins.opendata.core.OdConstants;
+import org.openstreetmap.josm.plugins.opendata.core.io.archive.ArchiveHandler;
 import org.openstreetmap.josm.plugins.opendata.core.io.archive.DefaultArchiveHandler;
-import org.openstreetmap.josm.plugins.opendata.core.io.archive.ArchiveHandler;
 import org.openstreetmap.josm.plugins.opendata.core.io.geographic.DefaultGmlHandler;
 import org.openstreetmap.josm.plugins.opendata.core.io.geographic.DefaultShpHandler;
@@ -37,11 +37,11 @@
 
 public abstract class AbstractDataSetHandler {
-    
+
     public abstract boolean acceptsFilename(String filename);
-    
+
     public boolean acceptsFile(File file) {
         return acceptsFilename(file.getName());
     }
-    
+
     public abstract void updateDataSet(DataSet ds);
 
@@ -60,5 +60,5 @@
         }
     }
-    
+
     public void checkNames(DataSet ds) {
         if (ds != null) {
@@ -83,11 +83,11 @@
         setGmlHandler(new DefaultGmlHandler());
     }
-    
-    private final boolean acceptsFilename(String filename, String[] expected, String ... extensions ) {
+
+    private boolean acceptsFilename(String filename, String[] expected, String ... extensions) {
         if (filename != null) {
             for (String name : expected) {
                 for (String ext : extensions) {
                     if (Pattern.compile(name+"\\."+ext, Pattern.CASE_INSENSITIVE).matcher(filename).matches()) {
-                    //if (filename.equalsIgnoreCase(name+"."+ext)) {
+                        //if (filename.equalsIgnoreCase(name+"."+ext)) {
                         return true;
                     }
@@ -97,5 +97,5 @@
         return false;
     }
-    
+
     protected final boolean acceptsCsvFilename(String filename, String ... expected) {
         return acceptsFilename(filename, expected, OdConstants.CSV_EXT);
@@ -157,13 +157,13 @@
         return acceptsFilename(filename, expected, OdConstants.CSV_EXT, OdConstants.KMZ_EXT, OdConstants.TAB_EXT);
     }
-        
+
     protected final boolean acceptsCsvXlsFilename(String filename, String ... expected) {
         return acceptsFilename(filename, expected, OdConstants.CSV_EXT, OdConstants.XLS_EXT);
     }
-    
+
     // -------------------- License --------------------
-    
+
     private License license;
-    
+
     public License getLicense() {
         return license;
@@ -175,10 +175,10 @@
 
     // --------------------- URLs ---------------------
-    
+
     private URL dataURL;
     private URL wikiURL;
     private URL localPortalURL;
     private URL nationalPortalURL;
-    
+
     public URL getDataURL() {
         return dataURL;
@@ -229,8 +229,12 @@
     }
 
-    public List<Pair<String,URL>> getDataURLs() {return null;}
-
-    public AbstractReader getReaderForUrl(String url) {return null;}
-    
+    public List<Pair<String, URL>> getDataURLs() {
+        return null;
+    }
+
+    public AbstractReader getReaderForUrl(String url) {
+        return null;
+    }
+
     private boolean hasLicenseToBeAccepted = true;
 
@@ -252,27 +256,33 @@
 
     public final Collection<String> getOsmXapiRequests(Bounds bounds) {
-        return getOsmXapiRequests(
-                LatLon.roundToOsmPrecision(bounds.getMin().lon())+","+
-                LatLon.roundToOsmPrecision(bounds.getMin().lat())+","+
-                LatLon.roundToOsmPrecision(bounds.getMax().lon())+","+
-                LatLon.roundToOsmPrecision(bounds.getMax().lat()));
-    }
-    
-    protected Collection<String> getOsmXapiRequests(String bbox) {return null;}
-    
+        return getOsmXapiRequests(LatLon.roundToOsmPrecision(bounds.getMin().lon())+","+
+                                  LatLon.roundToOsmPrecision(bounds.getMin().lat())+","+
+                                  LatLon.roundToOsmPrecision(bounds.getMax().lon())+","+
+                                  LatLon.roundToOsmPrecision(bounds.getMax().lat()));
+    }
+
+    protected Collection<String> getOsmXapiRequests(String bbox) {
+        return null;
+    }
+
     public final String getOverpassApiRequest(Bounds bounds) {
-        return getOverpassApiRequest(
-                "w=\""+LatLon.roundToOsmPrecision(bounds.getMin().lon())+"\" "+
-                "s=\""+LatLon.roundToOsmPrecision(bounds.getMin().lat())+"\" "+
-                "e=\""+LatLon.roundToOsmPrecision(bounds.getMax().lon())+"\" "+
-                "n=\""+LatLon.roundToOsmPrecision(bounds.getMax().lat())+"\"");
-    }
-
-    protected String getOverpassApiRequest(String bbox) {return null;}
-
-    public boolean equals(IPrimitive p1, IPrimitive p2) {return false;}
-    
-    public boolean isRelevant(IPrimitive p) {return false;}
-    
+        return getOverpassApiRequest("w=\""+LatLon.roundToOsmPrecision(bounds.getMin().lon())+"\" "+
+                                     "s=\""+LatLon.roundToOsmPrecision(bounds.getMin().lat())+"\" "+
+                                     "e=\""+LatLon.roundToOsmPrecision(bounds.getMax().lon())+"\" "+
+                                     "n=\""+LatLon.roundToOsmPrecision(bounds.getMax().lat())+"\"");
+    }
+
+    protected String getOverpassApiRequest(String bbox) {
+        return null;
+    }
+
+    public boolean equals(IPrimitive p1, IPrimitive p2) {
+        return false;
+    }
+
+    public boolean isRelevant(IPrimitive p) {
+        return false;
+    }
+
     public final Collection<IPrimitive> extractRelevantPrimitives(DataSet ds) {
         ArrayList<IPrimitive> result = new ArrayList<>();
@@ -284,13 +294,17 @@
         return result;
     }
-    
-    public boolean isForbidden(IPrimitive p) {return false;}
-    
-    public boolean hasForbiddenTags() {return false;}
-    
+
+    public boolean isForbidden(IPrimitive p) {
+        return false;
+    }
+
+    public boolean hasForbiddenTags() {
+        return false;
+    }
+
     public interface ValueReplacer {
-        public String replace(String value);
-    }
-    
+        String replace(String value);
+    }
+
     protected final void replace(IPrimitive p, String dataKey, String osmKey) {
         addOrReplace(p, dataKey, osmKey, null, null, null, true);
@@ -304,5 +318,5 @@
         addOrReplace(p, dataKey, osmKey, dataValues, osmValues, null, true);
     }
-    
+
     protected final void add(IPrimitive p, String dataKey, String osmKey, ValueReplacer replacer) {
         addOrReplace(p, dataKey, osmKey, null, null, replacer, false);
@@ -312,6 +326,7 @@
         addOrReplace(p, dataKey, osmKey, dataValues, osmValues, null, false);
     }
-    
-    private final void addOrReplace(IPrimitive p, String dataKey, String osmKey, String[] dataValues, String[] osmValues, ValueReplacer replacer, boolean replace) {
+
+    private void addOrReplace(IPrimitive p, String dataKey, String osmKey, String[] dataValues, String[] osmValues,
+            ValueReplacer replacer, boolean replace) {
         String value = p.get(dataKey);
         if (value != null) {
@@ -334,6 +349,6 @@
         }
     }
-    
-    private final void doAddReplace(IPrimitive p, String dataKey, String osmKey, String osmValue, boolean replace) {
+
+    private void doAddReplace(IPrimitive p, String dataKey, String osmKey, String osmValue, boolean replace) {
         if (replace) {
             p.remove(dataKey);
@@ -345,9 +360,9 @@
         return null;
     }
-        
+
     public final String getSourceDate() {
         return sourceDate;
     }
-    
+
     public final void setSourceDate(String sourceDate) {
         this.sourceDate = sourceDate;
@@ -357,5 +372,5 @@
         return name;
     }
-    
+
     public final void setName(String name) {
         this.name = name;
@@ -365,13 +380,13 @@
         return OdConstants.ICON_CORE_24;
     }
-        
+
     public String getNationalPortalIconName() {
         return OdConstants.ICON_CORE_24;
     }
-        
+
     public String getDataLayerIconName() {
         return OdConstants.ICON_CORE_16;
     }
-    
+
     public ExtendedSourceEntry getMapPaintStyle() {
         return null;
@@ -387,9 +402,9 @@
 
     protected final ExtendedSourceEntry getMapPaintStyle(String displayName, String fileNameWithoutExtension) {
-        return new ExtendedSourceEntry(displayName,    OdConstants.PROTO_RSRC+//"/"+
+        return new ExtendedSourceEntry(displayName, OdConstants.PROTO_RSRC+//"/"+
                 this.getClass().getPackage().getName().replace(".", "/")+"/"+
                 fileNameWithoutExtension+"."+OdConstants.MAPCSS_EXT);
     }
-    
+
     public final ImageIcon getMenuIcon() {
         return menuIcon;
@@ -411,5 +426,5 @@
         return this.associatedFile;
     }
-    
+
     public boolean acceptsUrl(String url) {
         URL dataURL = getDataURL();
@@ -427,7 +442,7 @@
         return false;
     }
-    
+
     // --------- Shapefile handling ---------
-    
+
     private ShpHandler shpHandler;
 
@@ -435,5 +450,5 @@
         shpHandler = handler;
     }
-    
+
     public final ShpHandler getShpHandler() {
         return shpHandler;
@@ -441,5 +456,5 @@
 
     // --------- MIF handling ---------
-    
+
     private MifHandler mifHandler;
 
@@ -447,5 +462,5 @@
         mifHandler = handler;
     }
-    
+
     public final MifHandler getMifHandler() {
         return mifHandler;
@@ -453,5 +468,5 @@
 
     // --------- GML handling ---------
-    
+
     private GmlHandler gmlHandler;
 
@@ -459,5 +474,5 @@
         gmlHandler = handler;
     }
-    
+
     public final GmlHandler getGmlHandler() {
         return gmlHandler;
@@ -465,5 +480,5 @@
 
     // ------------ Archive handling ------------
-    
+
     private ArchiveHandler archiveHandler;
 
@@ -471,9 +486,9 @@
         archiveHandler = handler;
     }
-    
+
     public ArchiveHandler getArchiveHandler() {
         return archiveHandler;
     }
-    
+
     // ------ Spreadsheet handling ----------
 
@@ -483,5 +498,5 @@
         ssHandler = handler;
     }
-    
+
     public final SpreadSheetHandler getSpreadSheetHandler() {
         return ssHandler;
@@ -491,5 +506,5 @@
         setSpreadSheetHandler(handler);
     }
-    
+
     public final CsvHandler getCsvHandler() {
         if (ssHandler instanceof CsvHandler) {
@@ -499,17 +514,17 @@
         }
     }
-    
+
     // Tools
 
     private final Collection<JosmAction> tools = new ArrayList<>();
-    
+
     public final Collection<JosmAction> getTools() {
         return tools;
     }
-    
+
     public final boolean addTool(JosmAction tool) {
         return tool != null ? tools.add(tool) : false;
     }
-    
+
     public final boolean removeTool(JosmAction tool) {
         return tool != null ? tools.remove(tool) : false;
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/SimpleDataSetHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/SimpleDataSetHandler.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/SimpleDataSetHandler.java	(revision 32545)
@@ -28,11 +28,11 @@
     private final List<Tag> relevantTags = new ArrayList<>();
     private final List<Tag> forbiddenTags = new ArrayList<>();
-    
+
     private final boolean relevantUnion;
-    
+
     public SimpleDataSetHandler() {
         this.relevantUnion = false;
     }
-            
+
     public SimpleDataSetHandler(String relevantTag) {
         addRelevantTag(relevantTag);
@@ -47,5 +47,5 @@
         setMenuIcon(MapPaintStyles.getNodeIcon(tag));
     }
-    
+
     public SimpleDataSetHandler(boolean relevantUnion, String ... relevantTags) {
         addRelevantTag(relevantTags);
@@ -61,5 +61,5 @@
         this.relevantUnion = false;
     }
-    
+
     public SimpleDataSetHandler(boolean relevantUnion, Tag ... relevantTags) {
         addRelevantTag(relevantTags);
@@ -86,6 +86,6 @@
         addTags(this.forbiddenTags, forbiddenTags);
     }
-    
-    private final void addTags(final List<Tag> list, String ... tags) {
+
+    private void addTags(final List<Tag> list, String ... tags) {
         if (tags != null) {
             for (String tag : tags) {
@@ -102,5 +102,5 @@
     }
 
-    private final void addTags(final List<Tag> list, Tag ... tags) {
+    private void addTags(final List<Tag> list, Tag ... tags) {
         if (tags != null) {
             for (Tag tag : tags) {
@@ -111,5 +111,5 @@
         }
     }
-    
+
     @Override
     public boolean equals(IPrimitive p1, IPrimitive p2) {
@@ -135,5 +135,5 @@
         return true;
     }
-    
+
     @Override
     public boolean isForbidden(IPrimitive p) {
@@ -163,16 +163,16 @@
         String[] mpconditions = new String[conditions.length+1];
         mpconditions[0] = OverpassApi.hasKey("type", "multipolygon");
-        for (int i=0; i<conditions.length; i++) {
+        for (int i = 0; i < conditions.length; i++) {
             mpconditions[i+1] = conditions[i];
         }
-        return OverpassApi.query(bbox, NODE, conditions) + "\n" + // Nodes 
-            OverpassApi.recurse(NODE_RELATION, RELATION_WAY, WAY_NODE) + "\n" +
-            OverpassApi.query(bbox, WAY, conditions) + "\n" + // Full ways and their full relations 
-            OverpassApi.recurse(WAY_NODE, "nodes") + "\n" +
-            OverpassApi.recurse(WAY_RELATION, RELATION_WAY, WAY_NODE) + "\n" +
-            OverpassApi.query(bbox, RELATION, mpconditions) + "\n" + // Full multipolygons
-            OverpassApi.recurse(RELATION_WAY, WAY_NODE);
-    }
-    
+        return OverpassApi.query(bbox, NODE, conditions) + "\n" + // Nodes
+        OverpassApi.recurse(NODE_RELATION, RELATION_WAY, WAY_NODE) + "\n" +
+        OverpassApi.query(bbox, WAY, conditions) + "\n" + // Full ways and their full relations
+        OverpassApi.recurse(WAY_NODE, "nodes") + "\n" +
+        OverpassApi.recurse(WAY_RELATION, RELATION_WAY, WAY_NODE) + "\n" +
+        OverpassApi.query(bbox, RELATION, mpconditions) + "\n" + // Full multipolygons
+        OverpassApi.recurse(RELATION_WAY, WAY_NODE);
+    }
+
     @Override
     protected String getOverpassApiRequest(String bbox) {
@@ -180,5 +180,5 @@
         if (this.relevantUnion) {
             for (Tag tag : this.relevantTags) {
-                result += getOverpassApiQueries(bbox, OverpassApi.hasKey(tag.getKey(), tag.getValue())); 
+                result += getOverpassApiQueries(bbox, OverpassApi.hasKey(tag.getKey(), tag.getValue()));
             }
             result = OverpassApi.union(result);
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/WayCombiner.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/WayCombiner.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/WayCombiner.java	(revision 32545)
@@ -26,6 +26,10 @@
 
 // FIXME: Try to refactor CombineWayAction instead of using this class
-public class WayCombiner {
-    
+public final class WayCombiner {
+
+    private WayCombiner() {
+        // Hide default constructor for utilities classes
+    }
+
     protected static Way getTargetWay(Collection<Way> combinedWays) {
         // init with an arbitrary way
@@ -42,9 +46,5 @@
         return targetWay;
     }
-    
-    /**
-     * @param ways
-     * @throws UserCancelException
-     */
+
     public static void combineWays(Collection<Way> ways) throws UserCancelException {
 
@@ -103,5 +103,5 @@
                 ReverseWayTagCorrector reverseWayTagCorrector = new ReverseWayTagCorrector();
                 List<Way> reversedTagWays = new ArrayList<>();
-                Collection<Command> changePropertyCommands =  null;
+                Collection<Command> changePropertyCommands = null;
                 for (Way w : reversedWays) {
                     Way wnew = new Way(w);
@@ -138,5 +138,5 @@
                 parentRelations,
                 ways
-        );
+                );
         dialog.prepareDefaultDecisions();
 
@@ -146,5 +146,5 @@
             dialog.setVisible(true);
             //if (dialog.isCanceled()) // FIXME
-                throw new UserCancelException();
+            throw new UserCancelException();
         }
 
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/at/AustrianConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/at/AustrianConstants.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/at/AustrianConstants.java	(revision 32545)
@@ -1,5 +1,4 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.opendata.core.datasets.at;
-
 
 public interface AustrianConstants {
@@ -8,4 +7,4 @@
      * Icon
      */
-    public static final String ICON_AT_24 = "at24.png";
+    String ICON_AT_24 = "at24.png";
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/at/AustrianGmlHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/at/AustrianGmlHandler.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/at/AustrianGmlHandler.java	(revision 32545)
@@ -13,42 +13,44 @@
     public CoordinateReferenceSystem getCrsFor(String crsName)
             throws NoSuchAuthorityCodeException, FactoryException {
-        
+
         // See http://www.esri-austria.at/downloads/coords_at.html
-        
+
         if (crsName != null && crsName.startsWith("AUT")) {
+            // CHECKSTYLE.OFF: LineLength
             if (crsName.equalsIgnoreCase("AUT-GK28")) {             // Gauß-Krüger, Meridianstreifen M28
                 return CRS.decode("EPSG:31281");
-            
+
             } else if (crsName.equalsIgnoreCase("AUT-GK31")) {      // Gauß-Krüger, Meridianstreifen M31
                 return CRS.decode("EPSG:31282");
-                
+
             } else if (crsName.equalsIgnoreCase("AUT-GK34")) {      // Gauß-Krüger, Meridianstreifen M34
                 return CRS.decode("EPSG:31283");
-                
+
             } else if (crsName.equalsIgnoreCase("AUT-GK28-5")) {    // Gauß-Krüger, Meridianstreifen M28, ohne 5 Mio. im Hochwert
                 return CRS.decode("EPSG:31251");
-                
+
             } else if (crsName.equalsIgnoreCase("AUT-GK31-5")) {    // Gauß-Krüger, Meridianstreifen M31, ohne 5 Mio. im Hochwert
                 return CRS.decode("EPSG:31252");
-                
+
             } else if (crsName.equalsIgnoreCase("AUT-GK34-5")) {    // Gauß-Krüger, Meridianstreifen M34, ohne 5 Mio. im Hochwert
                 return CRS.decode("EPSG:31253");
-                
+
             } else if (crsName.equalsIgnoreCase("AUT-BM28")) {      // Bundesmeldenetz, Meridianstreifen M28
                 return CRS.decode("EPSG:31288");
-                
+
             } else if (crsName.equalsIgnoreCase("AUT-BM31")) {      // Bundesmeldenetz, Meridianstreifen M31
                 return CRS.decode("EPSG:31289");
-                
+
             } else if (crsName.equalsIgnoreCase("AUT-BM34")) {      // Bundesmeldenetz, Meridianstreifen M34
                 return CRS.decode("EPSG:31290");
-                
+
             } else if (crsName.equalsIgnoreCase("AUT-LM")) {        // Lambertsche Kegelprojektion (geogr. Breite des Koo.Ursprungs = 47°30')
                 return CRS.decode("EPSG:31287");
-                
+
             } else if (crsName.equalsIgnoreCase("AUT-LL-BESSEL")) { // Geographische Koordinaten auf dem Bessel-Ellipsoid, Längenzählung nach Greenwich
                 // See http://josebatiz.com/granvision/Almap/Install/Data1/_B5694C166D6A4B5390B1E547C6A1FAF6
                 // FIXME
             }
+            // CHECKSTYLE.ON: LineLength
         }
         return super.getCrsFor(crsName);
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/au/AustralianConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/au/AustralianConstants.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/au/AustralianConstants.java	(revision 32545)
@@ -1,5 +1,4 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.opendata.core.datasets.au;
-
 
 public interface AustralianConstants {
@@ -8,9 +7,9 @@
      * Portal
      */
-    public static final String AUSTRALIAN_PORTAL = "http://data.gov.au/dataset/";
-    
+    String AUSTRALIAN_PORTAL = "http://data.gov.au/dataset/";
+
     /**
      * Icon
      */
-    public static final String ICON_AU_24 = "au24.png";
+    String ICON_AU_24 = "au24.png";
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/be/BelgianConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/be/BelgianConstants.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/be/BelgianConstants.java	(revision 32545)
@@ -9,9 +9,9 @@
      * Portal
      */
-    public static final String BELGIAN_PORTAL = "http://data.gov.be/"+OdConstants.PATTERN_LANG+"/dataset/";
-    
+    String BELGIAN_PORTAL = "http://data.gov.be/"+OdConstants.PATTERN_LANG+"/dataset/";
+
     /**
      * Icon
      */
-    public static final String ICON_BE_24 = "be24.png";
+    String ICON_BE_24 = "be24.png";
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/be/BelgianDataSetHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/be/BelgianDataSetHandler.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/be/BelgianDataSetHandler.java	(revision 32545)
@@ -26,10 +26,10 @@
     protected static final Projection lambert1972 = OdConstants.PRJ_LAMBERT_1972.getProjection();
     protected static final Projection lambert2008 = OdConstants.PRJ_LAMBERT_2008.getProjection();
-    
+
     protected static final Projection[] projections = new Projection[]{
-        lambert1972,
-        lambert2008
+            lambert1972,
+            lambert2008
     };
-    
+
     protected class InternalCsvHandler extends DefaultCsvHandler {
         /*@Override
@@ -41,5 +41,5 @@
             }
         }*/
-        
+
         @Override
         public LatLon getCoor(EastNorth en, String[] fields) {
@@ -70,10 +70,11 @@
         init();
     }
-    
+
     private void init() {
         setCsvHandler(new InternalCsvHandler());
     }
 
-    protected final void setNationalPortalPath(String nationalPortalPathDe, String nationalPortalPathEn, String nationalPortalPathFr, String nationalPortalPathNl) {
+    protected final void setNationalPortalPath(String nationalPortalPathDe, String nationalPortalPathEn,
+            String nationalPortalPathFr, String nationalPortalPathNl) {
         this.nationalPortalPathDe = nationalPortalPathDe;
         this.nationalPortalPathEn = nationalPortalPathEn;
@@ -95,5 +96,5 @@
                 lang = Locale.getDefault().toString();
             }
-                
+
             if (lang.startsWith("de") && nationalPortalPathDe != null) {
                 nationalPortalPath = nationalPortalPathDe;
@@ -105,5 +106,5 @@
                 nationalPortalPath = nationalPortalPathEn;
             }
-            return new URL(BELGIAN_PORTAL.replace(OdConstants.PATTERN_LANG, lang.substring(0, 2))+nationalPortalPath);//FIXME
+            return new URL(BELGIAN_PORTAL.replace(OdConstants.PATTERN_LANG, lang.substring(0, 2))+nationalPortalPath); //FIXME
         } catch (MalformedURLException e) {
             e.printStackTrace();
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/ca/CanadianConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/ca/CanadianConstants.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/ca/CanadianConstants.java	(revision 32545)
@@ -1,5 +1,4 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.opendata.core.datasets.ca;
-
 
 public interface CanadianConstants {
@@ -8,9 +7,9 @@
      * Portal
      */
-    public static final String CANADIAN_PORTAL = "http://www.data.gc.ca/geo/";
-    
+    String CANADIAN_PORTAL = "http://www.data.gc.ca/geo/";
+
     /**
      * Icon
      */
-    public static final String ICON_CA_24 = "ca24.png";
+    String ICON_CA_24 = "ca24.png";
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/cl/ChileanConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/cl/ChileanConstants.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/cl/ChileanConstants.java	(revision 32545)
@@ -1,5 +1,4 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.opendata.core.datasets.cl;
-
 
 public interface ChileanConstants {
@@ -8,9 +7,9 @@
      * Portal
      */
-    public static final String CHILEAN_PORTAL = "http://datos.gob.cl/datasets/";
-    
+    String CHILEAN_PORTAL = "http://datos.gob.cl/datasets/";
+
     /**
      * Icon
      */
-    public static final String ICON_CL_24 = "cl24.png";
+    String ICON_CL_24 = "cl24.png";
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/es/SpanishConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/es/SpanishConstants.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/es/SpanishConstants.java	(revision 32545)
@@ -1,5 +1,4 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.opendata.core.datasets.es;
-
 
 public interface SpanishConstants {
@@ -8,9 +7,9 @@
      * Portal
      */
-    public static final String SPANISH_PORTAL = "http://datos.gob.es/datos/";
-    
+    String SPANISH_PORTAL = "http://datos.gob.es/datos/";
+
     /**
      * Icon
      */
-    public static final String ICON_ES_24 = "es24.png";
+    String ICON_ES_24 = "es24.png";
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/fr/FrenchConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/fr/FrenchConstants.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/fr/FrenchConstants.java	(revision 32545)
@@ -1,5 +1,4 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.opendata.core.datasets.fr;
-
 
 public interface FrenchConstants {
@@ -8,14 +7,14 @@
      * Portal
      */
-    public static final String FRENCH_PORTAL = "http://www.data.gouv.fr/";
-    
+    String FRENCH_PORTAL = "http://www.data.gouv.fr/";
+
     /**
      * Icon
      */
-    public static final String ICON_FR_24 = "fr24.png";
-    
+    String ICON_FR_24 = "fr24.png";
+
     /**
      * NEPTUNE XML Schema
      */
-    public static final String NEPTUNE_XSD = "/resources/neptune/neptune.xsd";
+    String NEPTUNE_XSD = "/resources/neptune/neptune.xsd";
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/fr/FrenchDataSetHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/fr/FrenchDataSetHandler.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/fr/FrenchDataSetHandler.java	(revision 32545)
@@ -30,8 +30,8 @@
     protected static final Projection utm38 = Projections.getProjectionByCode("EPSG:32738"); // UTM 38 S - Mayotte
     protected static final Projection utm40 = Projections.getProjectionByCode("EPSG:32740"); // UTM 40 S - Reunion
-    
+
     protected static final Projection[] lambert4Zones = new Projection[4];
     static {
-        for (int i=0; i<lambert4Zones.length; i++) {
+        for (int i = 0; i < lambert4Zones.length; i++) {
             lambert4Zones[i] = Projections.getProjectionByCode("EPSG:"+Integer.toString(27561+i));
         }
@@ -39,11 +39,11 @@
 
     protected static final Projection[] projections = new Projection[]{
-        lambert93, // France metropolitaine
-        utm20, // Guadeloupe, Martinique
-        utm22, // Guyane
-        utm38, // Mayotte
-        utm40, // Reunion
+            lambert93, // France metropolitaine
+            utm20, // Guadeloupe, Martinique
+            utm22, // Guyane
+            utm38, // Mayotte
+            utm40, // Reunion
     };
-    
+
     protected class InternalCsvHandler extends DefaultCsvHandler {
         /*@Override
@@ -55,5 +55,5 @@
             }
         }*/
-        
+
         @Override
         public LatLon getCoor(EastNorth en, String[] fields) {
@@ -89,5 +89,5 @@
         init();
     }
-    
+
     private void init() {
         setShpHandler(new FrenchShpHandler());
@@ -124,6 +124,7 @@
         return ICON_FR_24;
     }
-    
+
     protected static final LatLon getLatLonByDptCode(EastNorth en, String dpt, boolean useCC9) {
+        // CHECKSTYLE.OFF: LineLength
         if (dpt.equals("971") || dpt.equals("972") || dpt.equals("977") || dpt.equals("978")) {    // Antilles
             return utm20.eastNorth2latlon(en);
@@ -157,4 +158,5 @@
             throw new IllegalArgumentException("Unsupported department code: "+dpt);
         }
+        // CHECKSTYLE.ON: LineLength
     }
 
@@ -170,15 +172,15 @@
         replaceFaxPhone(p, dataKey, "contact:fax");
     }
-    
+
     protected void replacePhone(OsmPrimitive p, String dataKey) {
         replaceFaxPhone(p, dataKey, "contact:phone");
     }
-    
+
     private static final String dayFr = "L|Lu|M|Ma|Me|J|Je|V|Ve|S|Sa|D|Di";
     private static final String dayEn = "Mo|Mo|Tu|Tu|We|Th|Th|Fr|Fr|Sa|Sa|Su|Su";
-    
+
     private static final String[] dayFrSplit = dayFr.split("\\|");
     private static final String[] dayEnSplit = dayEn.split("\\|");
-    
+
     protected void replaceOpeningHours(OsmPrimitive p, String dataKey) {
         String hours = p.get(dataKey);
@@ -194,5 +196,5 @@
             String dayNcGroup = "(?:"+dayFr+")";
             // FIXME: this doesn't work yet
-            for (String sep : new String[]{"-",","}) {
+            for (String sep : new String[]{"-", ","}) {
                 boolean finished = false;
                 while (!finished) {
@@ -203,5 +205,5 @@
                         if (m2.matches()) {
                             String replacement = "";
-                            for (int i=0; i<m2.groupCount(); i++) {
+                            for (int i = 0; i < m2.groupCount(); i++) {
                                 if (i > 0) {
                                     replacement += sep;
@@ -220,7 +222,7 @@
         }
     }
-    
+
     private String getEnDay(String frDay) {
-        for (int i=0; i<dayFrSplit.length; i++) {
+        for (int i = 0; i < dayFrSplit.length; i++) {
             if (dayFrSplit[i].equals(frDay)) {
                 return dayEnSplit[i];
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/fr/FrenchShpHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/fr/FrenchShpHandler.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/fr/FrenchShpHandler.java	(revision 32545)
@@ -32,5 +32,6 @@
             if (sourceCRS instanceof ProjectedCRS) {
                 GeodeticDatum datum = ((ProjectedCRS) sourceCRS).getDatum();
-                if (datum.getPrimeMeridian().getGreenwichLongitude() > 0.0 && ((ProjectedCRS) sourceCRS).getConversionFromBase().getMathTransform() instanceof LambertConformal2SP) {
+                if (datum.getPrimeMeridian().getGreenwichLongitude() > 0.0
+                        && ((ProjectedCRS) sourceCRS).getConversionFromBase().getMathTransform() instanceof LambertConformal2SP) {
                     LambertConformal2SP lambert = (LambertConformal2SP) ((ProjectedCRS) sourceCRS).getConversionFromBase().getMathTransform();
                     Double falseNorthing = get(lambert.getParameterValues(), AbstractProvider.FALSE_NORTHING);
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/it/ItalianConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/it/ItalianConstants.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/it/ItalianConstants.java	(revision 32545)
@@ -1,5 +1,4 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.opendata.core.datasets.it;
-
 
 public interface ItalianConstants {
@@ -8,9 +7,9 @@
      * Portal
      */
-    public static final String ITALIAN_PORTAL = "http://www.dati.gov.it/content/";
-    
+    String ITALIAN_PORTAL = "http://www.dati.gov.it/content/";
+
     /**
      * Icon
      */
-    public static final String ICON_IT_24 = "it24.png";
+    String ICON_IT_24 = "it24.png";
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/ke/KenyanConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/ke/KenyanConstants.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/ke/KenyanConstants.java	(revision 32545)
@@ -1,5 +1,4 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.opendata.core.datasets.ke;
-
 
 public interface KenyanConstants {
@@ -8,9 +7,9 @@
      * Portal
      */
-    public static final String KENYAN_PORTAL = "https://opendata.go.ke/";
-    
+    String KENYAN_PORTAL = "https://opendata.go.ke/";
+
     /**
      * Icon
      */
-    public static final String ICON_KE_24 = "ke24.png";
+    String ICON_KE_24 = "ke24.png";
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/nl/DutchConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/nl/DutchConstants.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/nl/DutchConstants.java	(revision 32545)
@@ -1,5 +1,4 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.opendata.core.datasets.nl;
-
 
 public interface DutchConstants {
@@ -8,9 +7,9 @@
      * Portal
      */
-    public static final String NORWEGIAN_PORTAL = "http://data.overheid.nl/package/";
-    
+    String NORWEGIAN_PORTAL = "http://data.overheid.nl/package/";
+
     /**
      * Icon
      */
-    public static final String ICON_NL_24 = "nl24.png";
+    String ICON_NL_24 = "nl24.png";
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/no/NorwegianConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/no/NorwegianConstants.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/no/NorwegianConstants.java	(revision 32545)
@@ -1,5 +1,4 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.opendata.core.datasets.no;
-
 
 public interface NorwegianConstants {
@@ -8,9 +7,9 @@
      * Portal
      */
-    public static final String NORWEGIAN_PORTAL = "http://data.norge.no/data/";
-    
+    String NORWEGIAN_PORTAL = "http://data.norge.no/data/";
+
     /**
      * Icon
      */
-    public static final String ICON_NO_24 = "no24.png";
+    String ICON_NO_24 = "no24.png";
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/nz/NewZealanderConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/nz/NewZealanderConstants.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/nz/NewZealanderConstants.java	(revision 32545)
@@ -1,5 +1,4 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.opendata.core.datasets.nz;
-
 
 public interface NewZealanderConstants {
@@ -8,9 +7,9 @@
      * Portal
      */
-    public static final String NEW_ZEALANDER_PORTAL = "http://data.govt.nz/dataset/";
-    
+    String NEW_ZEALANDER_PORTAL = "http://data.govt.nz/dataset/";
+
     /**
      * Icon
      */
-    public static final String ICON_NZ_24 = "nz24.png";
+    String ICON_NZ_24 = "nz24.png";
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/pt/PortugueseConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/pt/PortugueseConstants.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/pt/PortugueseConstants.java	(revision 32545)
@@ -1,5 +1,4 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.opendata.core.datasets.pt;
-
 
 public interface PortugueseConstants {
@@ -8,9 +7,9 @@
      * Portal
      */
-    public static final String PORTUGUESE_PORTAL = "http://www.dados.gov.pt/PT/CatalogoDados/Dados.aspx?name=";
-    
+    String PORTUGUESE_PORTAL = "http://www.dados.gov.pt/PT/CatalogoDados/Dados.aspx?name=";
+
     /**
      * Icon
      */
-    public static final String ICON_PT_24 = "pt24.png";
+    String ICON_PT_24 = "pt24.png";
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/uk/BritishConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/uk/BritishConstants.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/uk/BritishConstants.java	(revision 32545)
@@ -1,5 +1,4 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.opendata.core.datasets.uk;
-
 
 public interface BritishConstants {
@@ -8,9 +7,9 @@
      * Portal
      */
-    public static final String BRITISH_PORTAL = "http://data.gov.uk/dataset/";
-    
+    String BRITISH_PORTAL = "http://data.gov.uk/dataset/";
+
     /**
      * Icon
      */
-    public static final String ICON_UK_24 = "uk24.png";
+    String ICON_UK_24 = "uk24.png";
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/us/AmericanConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/us/AmericanConstants.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/us/AmericanConstants.java	(revision 32545)
@@ -1,5 +1,4 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.opendata.core.datasets.us;
-
 
 public interface AmericanConstants {
@@ -8,9 +7,9 @@
      * Portal
      */
-    public static final String AMERICAN_PORTAL = "http://explore.data.gov/";
-    
+    String AMERICAN_PORTAL = "http://explore.data.gov/";
+
     /**
      * Icon
      */
-    public static final String ICON_US_24 = "us24.png";
+    String ICON_US_24 = "us24.png";
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/DialogPrompter.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/DialogPrompter.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/DialogPrompter.java	(revision 32545)
@@ -8,23 +8,26 @@
 import org.openstreetmap.josm.gui.ExtendedDialog;
 
-public class DialogPrompter <T extends ExtendedDialog> implements Runnable {
-    
+public class DialogPrompter<T extends ExtendedDialog> implements Runnable {
+
     private T dialog;
     private int value = -1;
 
-    protected T buildDialog() {return null;} // To be overriden if needed
-    
+    protected T buildDialog() {
+        // To be overriden if needed
+        return null;
+    }
+
     public DialogPrompter() {
         this(null);
     }
-    
+
     public DialogPrompter(T dialog) {
         this.dialog = dialog;
     }
-    
+
     public final T getDialog() {
         return dialog;
     }
-    
+
     @Override
     public final void run() {
@@ -36,5 +39,5 @@
         }
     }
-    
+
     public final DialogPrompter<T> promptInEdt() {
         if (SwingUtilities.isEventDispatchThread()) {
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModuleListPanel.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModuleListPanel.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModuleListPanel.java	(revision 32545)
@@ -27,5 +27,5 @@
  *
  */
-public class ModuleListPanel extends VerticallyScrollablePanel{
+public class ModuleListPanel extends VerticallyScrollablePanel {
     private ModulePreferencesModel model;
 
@@ -70,14 +70,13 @@
         gbc.anchor = GridBagConstraints.CENTER;
         gbc.fill = GridBagConstraints.BOTH;
-        gbc.insets = new Insets(40,0,40,0);
+        gbc.insets = new Insets(40, 0, 40, 0);
         gbc.weightx = 1.0;
         gbc.weighty = 1.0;
 
         HtmlPanel hint = new HtmlPanel();
-        hint.setText(
-                "<html>"
+        hint.setText("<html>"
                 + tr("Please click on <strong>Download list</strong> to download and display a list of available modules.")
                 + "</html>"
-        );
+                );
         add(hint, gbc);
     }
@@ -107,5 +106,6 @@
             cbModule.setSelected(selected);
             cbModule.setToolTipText(formatCheckboxTooltipText(pi));
-            cbModule.addActionListener(new ActionListener(){
+            cbModule.addActionListener(new ActionListener() {
+                @Override
                 public void actionPerformed(ActionEvent e) {
                     model.setModuleSelected(pi.getName(), cbModule.isSelected());
@@ -119,5 +119,5 @@
             gbc.gridx = 0;
             gbc.gridy = ++row;
-            gbc.insets = new Insets(5,5,0,5);
+            gbc.insets = new Insets(5, 5, 0, 5);
             gbc.weighty = 0.0;
             gbc.weightx = 0.0;
@@ -131,6 +131,7 @@
             description.setText(pi.getDescriptionAsHtml());
             description.getEditorPane().addHyperlinkListener(new HyperlinkListener() {
+                @Override
                 public void hyperlinkUpdate(HyperlinkEvent e) {
-                    if(e.getEventType() == EventType.ACTIVATED) {
+                    if (e.getEventType() == EventType.ACTIVATED) {
                         OpenBrowser.displayUrl(e.getURL().toString());
                     }
@@ -140,5 +141,5 @@
             gbc.gridx = 1;
             gbc.gridy = ++row;
-            gbc.insets = new Insets(3,25,5,5);
+            gbc.insets = new Insets(3, 25, 5, 5);
             gbc.weighty = 1.0;
             add(description, gbc);
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModulePreference.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModulePreference.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModulePreference.java	(revision 32545)
@@ -67,5 +67,5 @@
         Collection<ModuleInformation> failed = task.getFailedModules();
         StringBuilder sb = new StringBuilder();
-        if (! downloaded.isEmpty()) {
+        if (!downloaded.isEmpty()) {
             sb.append(trn(
                     "The following module has been downloaded <strong>successfully</strong>:",
@@ -73,12 +73,12 @@
                     downloaded.size(),
                     downloaded.size()
-            ));
+                    ));
             sb.append("<ul>");
-            for(ModuleInformation pi: downloaded) {
+            for (ModuleInformation pi : downloaded) {
                 sb.append("<li>").append(pi.name).append(" (").append(pi.version).append(")").append("</li>");
             }
             sb.append("</ul>");
         }
-        if (! failed.isEmpty()) {
+        if (!failed.isEmpty()) {
             sb.append(trn(
                     "Downloading the following module has <strong>failed</strong>:",
@@ -86,7 +86,7 @@
                     failed.size(),
                     failed.size()
-            ));
+                    ));
             sb.append("<ul>");
-            for(ModuleInformation pi: failed) {
+            for (ModuleInformation pi : failed) {
                 sb.append("<li>").append(pi.name).append("</li>");
             }
@@ -108,6 +108,6 @@
 
     protected JPanel buildSearchFieldPanel() {
-        JPanel pnl  = new JPanel(new GridBagLayout());
-        pnl.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
+        JPanel pnl = new JPanel(new GridBagLayout());
+        pnl.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
         GridBagConstraints gc = new GridBagConstraints();
 
@@ -115,5 +115,5 @@
         gc.fill = GridBagConstraints.HORIZONTAL;
         gc.weightx = 0.0;
-        gc.insets = new Insets(0,0,0,3);
+        gc.insets = new Insets(0, 0, 0, 3);
         pnl.add(new JLabel(tr("Search:")), gc);
 
@@ -128,5 +128,5 @@
 
     protected JPanel buildActionPanel() {
-        JPanel pnl = new JPanel(new GridLayout(1,3));
+        JPanel pnl = new JPanel(new GridLayout(1, 3));
 
         pnl.add(new JButton(new DownloadAvailableModulesAction()));
@@ -139,14 +139,15 @@
         JPanel pnl = new JPanel(new BorderLayout());
         pnl.add(buildSearchFieldPanel(), BorderLayout.NORTH);
-        model  = new ModulePreferencesModel();
+        model = new ModulePreferencesModel();
         spModulePreferences = new JScrollPane(pnlModulePreferences = new ModuleListPanel(model));
         spModulePreferences.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
         spModulePreferences.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
         spModulePreferences.getVerticalScrollBar().addComponentListener(
-                new ComponentAdapter(){
+                new ComponentAdapter() {
                     @Override
                     public void componentShown(ComponentEvent e) {
                         spModulePreferences.setBorder(UIManager.getBorder("ScrollPane.border"));
                     }
+
                     @Override
                     public void componentHidden(ComponentEvent e) {
@@ -154,5 +155,5 @@
                     }
                 }
-        );
+                );
 
         pnl.add(spModulePreferences, BorderLayout.CENTER);
@@ -181,5 +182,5 @@
                         tr("Accept the new module sites and close the dialog"),
                         null /* no special help topic */
-                ),
+                        ),
                 new ButtonSpec(
                         tr("Cancel"),
@@ -187,5 +188,5 @@
                         tr("Close the dialog"),
                         null /* no special help topic */
-                )
+                        )
         };
         ModuleConfigurationSitesPanel pnl = new ModuleConfigurationSitesPanel();
@@ -200,5 +201,5 @@
                 options[0],
                 null /* no help topic */
-        );
+                );
         if (answer != 0 /* OK */)
             return;
@@ -218,5 +219,5 @@
     @Override
     public boolean ok() {
-        if (! modulePreferencesActivated)
+        if (!modulePreferencesActivated)
             return false;
         if (model.isActiveModulesChanged()) {
@@ -260,6 +261,6 @@
     class DownloadAvailableModulesAction extends AbstractAction {
 
-        public DownloadAvailableModulesAction() {
-            putValue(NAME,tr("Download list"));
+        DownloadAvailableModulesAction() {
+            putValue(NAME, tr("Download list"));
             putValue(SHORT_DESCRIPTION, tr("Download the list of available modules"));
             putValue(SMALL_ICON, ImageProvider.get("download"));
@@ -292,6 +293,6 @@
      */
     class UpdateSelectedModulesAction extends AbstractAction {
-        public UpdateSelectedModulesAction() {
-            putValue(NAME,tr("Update modules"));
+        UpdateSelectedModulesAction() {
+            putValue(NAME, tr("Update modules"));
             putValue(SHORT_DESCRIPTION, tr("Update the selected modules"));
             putValue(SMALL_ICON, ImageProvider.get("dialogs", "refresh"));
@@ -314,5 +315,5 @@
                     !failed.isEmpty() ? JOptionPane.WARNING_MESSAGE : JOptionPane.INFORMATION_MESSAGE,
                             HelpUtil.ht("/Preferences/Modules")
-            );
+                    );
         }
 
@@ -327,5 +328,5 @@
                             JOptionPane.INFORMATION_MESSAGE,
                             null // FIXME: provide help context
-                    );
+                            );
                 }
             });
@@ -340,7 +341,8 @@
                     toUpdate,
                     tr("Update modules")
-            );
+                    );
             // the async task for downloading module information
-            final ReadRemoteModuleInformationTask moduleInfoDownloadTask = new ReadRemoteModuleInformationTask(OdPreferenceSetting.getModuleSites());
+            final ReadRemoteModuleInformationTask moduleInfoDownloadTask =
+                    new ReadRemoteModuleInformationTask(OdPreferenceSetting.getModuleSites());
 
             // to be run asynchronously after the module download
@@ -374,5 +376,5 @@
                     //
                     Iterator<ModuleInformation> it = toUpdate.iterator();
-                    while(it.hasNext()) {
+                    while (it.hasNext()) {
                         ModuleInformation pi = it.next();
                         if (!pi.isUpdateRequired()) {
@@ -395,5 +397,4 @@
     }
 
-
     /**
      * The action for configuring the module download sites
@@ -401,6 +402,6 @@
      */
     class ConfigureSitesAction extends AbstractAction {
-        public ConfigureSitesAction() {
-            putValue(NAME,tr("Configure sites..."));
+        ConfigureSitesAction() {
+            putValue(NAME, tr("Configure sites..."));
             putValue(SHORT_DESCRIPTION, tr("Configure the list of sites where modules are downloaded from"));
             putValue(SMALL_ICON, ImageProvider.get("dialogs", "settings"));
@@ -420,5 +421,5 @@
     class ModulePreferenceActivationListener implements ChangeListener {
         private Component pane;
-        public ModulePreferenceActivationListener(Component preferencesPane) {
+        ModulePreferenceActivationListener(Component preferencesPane) {
             pane = preferencesPane;
         }
@@ -426,5 +427,5 @@
         @Override
         public void stateChanged(ChangeEvent e) {
-            JTabbedPane tp = (JTabbedPane)e.getSource();
+            JTabbedPane tp = (JTabbedPane) e.getSource();
             if (tp.getSelectedComponent() == pane) {
                 readLocalModuleInformation();
@@ -464,5 +465,5 @@
     }
 
-    static private class ModuleConfigurationSitesPanel extends JPanel {
+    private static class ModuleConfigurationSitesPanel extends JPanel {
 
         private DefaultListModel<String> model;
@@ -478,5 +479,5 @@
             add(new JScrollPane(list), GBC.std().fill());
             JPanel buttons = new JPanel(new GridBagLayout());
-            buttons.add(new JButton(new AbstractAction(tr("Add")){
+            buttons.add(new JButton(new AbstractAction(tr("Add")) {
                 @Override
                 public void actionPerformed(ActionEvent e) {
@@ -486,5 +487,5 @@
                             tr("Enter URL"),
                             JOptionPane.QUESTION_MESSAGE
-                    );
+                            );
                     if (s != null) {
                         model.addElement(s);
@@ -492,5 +493,5 @@
                 }
             }), GBC.eol().fill(GBC.HORIZONTAL));
-            buttons.add(new JButton(new AbstractAction(tr("Edit")){
+            buttons.add(new JButton(new AbstractAction(tr("Edit")) {
                 @Override
                 public void actionPerformed(ActionEvent e) {
@@ -501,8 +502,8 @@
                                 tr("Warning"),
                                 JOptionPane.WARNING_MESSAGE
-                        );
+                                );
                         return;
                     }
-                    String s = (String)JOptionPane.showInputDialog(
+                    String s = (String) JOptionPane.showInputDialog(
                             Main.parent,
                             tr("Edit Open Data Module description URL."),
@@ -512,5 +513,5 @@
                             null,
                             list.getSelectedValue()
-                    );
+                            );
                     if (s != null) {
                         model.setElementAt(s, list.getSelectedIndex());
@@ -518,5 +519,5 @@
                 }
             }), GBC.eol().fill(GBC.HORIZONTAL));
-            buttons.add(new JButton(new AbstractAction(tr("Delete")){
+            buttons.add(new JButton(new AbstractAction(tr("Delete")) {
                 @Override
                 public void actionPerformed(ActionEvent event) {
@@ -527,5 +528,5 @@
                                 tr("Warning"),
                                 JOptionPane.WARNING_MESSAGE
-                        );
+                                );
                         return;
                     }
@@ -536,5 +537,5 @@
         }
 
-        public ModuleConfigurationSitesPanel() {
+        ModuleConfigurationSitesPanel() {
             build();
         }
@@ -543,5 +544,5 @@
             if (model.getSize() == 0) return Collections.emptyList();
             List<String> ret = new ArrayList<>(model.getSize());
-            for (int i=0; i< model.getSize();i++){
+            for (int i = 0; i < model.getSize(); i++) {
                 ret.add(model.get(i));
             }
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 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModulePreferencesModel.java	(revision 32545)
@@ -31,5 +31,5 @@
         return Main.pref.getCollection(OdConstants.PREF_MODULES, def);
     }
-    
+
     public ModulePreferencesModel() {
         currentActiveModules = new HashSet<>();
@@ -75,5 +75,5 @@
     }
 
-    protected  void updateAvailableModule(ModuleInformation other) {
+    protected void updateAvailableModule(ModuleInformation other) {
         if (other == null) return;
         ModuleInformation pi = getModuleInformation(other.name);
@@ -148,4 +148,5 @@
                 availableModules,
                 new Comparator<ModuleInformation>() {
+                    @Override
                     public int compare(ModuleInformation o1, ModuleInformation o2) {
                         String n1 = o1.getName() == null ? "" : o1.getName().toLowerCase();
@@ -154,5 +155,5 @@
                     }
                 }
-        );
+                );
     }
 
@@ -193,5 +194,5 @@
         ModuleInformation pi = getModuleInformation(name);
         if (pi != null) {
-            selectedModulesMap.put(pi,selected);
+            selectedModulesMap.put(pi, selected);
             if (pi.isUpdateRequired()) {
                 pendingDownloads.add(pi.name);
@@ -209,7 +210,7 @@
      * @param modules the list of modules to clear for a pending download
      */
-    public void clearPendingModules(Collection<ModuleInformation> modules){
+    public void clearPendingModules(Collection<ModuleInformation> modules) {
         if (modules == null || modules.isEmpty()) return;
-        for(ModuleInformation pi: modules) {
+        for (ModuleInformation pi : modules) {
             pendingDownloads.remove(pi.name);
         }
@@ -324,5 +325,5 @@
     public boolean isActiveModulesChanged() {
         Set<String> newActiveModules = getSelectedModuleNames();
-        return ! newActiveModules.equals(currentActiveModules);
+        return !newActiveModules.equals(currentActiveModules);
     }
 
@@ -355,5 +356,5 @@
                 }
                 oldinfo.localversion = newinfo.version;
-            } catch(ModuleException e) {
+            } catch (ModuleException e) {
                 e.printStackTrace();
             }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/OdDialog.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/OdDialog.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/OdDialog.java	(revision 32545)
@@ -36,15 +36,16 @@
     private final SideButton diffButton;
     private final SideButton toolsButton;
-    
+
     private final List<SideButton> buttons;
-    
+
     private final TreeModel treeModel;
-    
+
     private OdDataLayer dataLayer;
-    
+
     private class DownloadAction extends JosmAction {
-        public DownloadAction() {
+        DownloadAction() {
             super(marktr("Download"), "download", tr("Download OSM data corresponding to the current data set."), null, false);
         }
+
         @Override
         public void actionPerformed(ActionEvent e) {
@@ -57,7 +58,9 @@
 
     private class SelectAction extends JosmAction {
-        public SelectAction() {
-            super(marktr("Select"), "dialogs/select", tr("Set the selected elements on the map to the selected items in the list above."), null, false);
+        SelectAction() {
+            super(marktr("Select"), "dialogs/select",
+                    tr("Set the selected elements on the map to the selected items in the list above."), null, false);
         }
+
         @Override
         public void actionPerformed(ActionEvent e) {
@@ -67,7 +70,8 @@
 
     private class DiffAction extends JosmAction {
-        public DiffAction() {
+        DiffAction() {
             super(marktr("Diff"), "dialogs/diff", tr("Perform diff between current data set and existing OSM data."), null, false);
         }
+
         @Override
         public void actionPerformed(ActionEvent e) {
@@ -77,9 +81,10 @@
         }
     }
-    
+
     private class ToolsAction extends JosmAction {
-        public ToolsAction() {
+        ToolsAction() {
             super(marktr("Tools"), "dialogs/utils", tr("Open tools menu for this data."), null, false);
         }
+
         @Override
         public void actionPerformed(ActionEvent e) {
@@ -89,15 +94,15 @@
 
     public OdDialog() {
-        super("OpenData", OdConstants.ICON_CORE_24, tr("Open the OpenData window."), 
+        super("OpenData", OdConstants.ICON_CORE_24, tr("Open the OpenData window."),
                 Shortcut.registerShortcut("subwindow:opendata", tr("Toggle: {0}", "OpenData"),
                         KeyEvent.VK_A, Shortcut.ALT_CTRL_SHIFT), 150, false, OdPreferenceSetting.class);
-        
+
         this.buttons = Arrays.asList(new SideButton[] {
-                /*selectButton =*/ new SideButton(new SelectAction()), 
-                downloadButton = new SideButton(new DownloadAction()), 
+                /*selectButton =*/ new SideButton(new SelectAction()),
+                downloadButton = new SideButton(new DownloadAction()),
                 diffButton = new SideButton(new DiffAction()),
                 toolsButton = new SideButton(new ToolsAction())
         });
-        
+
         this.toolsButton.addMouseListener(new MouseAdapter() {
             @Override
@@ -112,12 +117,12 @@
             }
         });
-        
+
         disableAllButtons();
-        
+
         this.treeModel = new DefaultTreeModel(null); // TODO: treeNode
         this.dataLayer = null;
-        
+
         createLayout(new JTree(treeModel), true, buttons);
-        
+
         Main.getLayerManager().addActiveLayerChangeListener(this);
     }
@@ -137,5 +142,5 @@
             dataLayer = null;
         }
-        
+
         if (dataLayer != null) {
             if (dataLayer.osmLayer == null) {
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/OdPreferenceSetting.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/OdPreferenceSetting.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/OdPreferenceSetting.java	(revision 32545)
@@ -34,13 +34,13 @@
     //private final JRadioButton rbCC43 = new JRadioButton(tr("CC43"));
     //private final JRadioButton rbWGS84 = new JRadioButton(tr("WGS84"));
-    
+
     private final JTextField oapi = new JTextField();
     private final JTextField xapi = new JTextField();
-    
+
     private final JCheckBox rawData = new JCheckBox(tr("Raw data"));
-    
+
     public final JTabbedPane tabPane = new JTabbedPane();
     public JPanel masterPanel;
-    
+
     private final ModulePreference modulePref = new ModulePreference();
 
@@ -51,9 +51,9 @@
                         "before any upload of data loaded by this plugin."));
     }
-    
+
     /**
      * Replies the collection of module site URLs from where module lists can be downloaded
      *
-     * @return
+     * @return the collection of module site URLs from where module lists can be downloaded
      */
     public static final Collection<String> getModuleSites() {
@@ -69,5 +69,5 @@
         Main.pref.putCollection(OdConstants.PREF_MODULES_SITES, sites);
     }
-    
+
     @Override
     public void addGui(PreferenceTabbedPane gui) {
@@ -75,7 +75,7 @@
         modulePref.addGui(gui);
         tabPane.add(createGeneralSettings());
-        
+
         JScrollPane scrollpane = new JScrollPane(tabPane);
-        scrollpane.setBorder(BorderFactory.createEmptyBorder( 0, 0, 0, 0 ));
+        scrollpane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
         masterPanel.add(scrollpane, GBC.eol().fill(GBC.BOTH));
     }
@@ -83,5 +83,5 @@
     protected JPanel createGeneralSettings() {
         JPanel general = new JPanel(new GridBagLayout());
-        general.setBorder(BorderFactory.createEmptyBorder(0,0,0,0));
+        general.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
         general.setName(tr("General settings"));
 
@@ -90,10 +90,10 @@
         rawData.setToolTipText(tr("Import only raw data (i.e. do not add/delete tags or replace them by standard OSM tags)"));
         general.add(rawData, GBC.eop().insets(0, 0, 0, 0));
-        
+
         // separator
         general.add(new JSeparator(SwingConstants.HORIZONTAL), GBC.eol().fill(GBC.HORIZONTAL));
-        
+
         // option to select the coordinates to use
-/*        JLabel jLabelRes = new JLabel(tr("Coordinates system to read in CSV files:"));
+        /*        JLabel jLabelRes = new JLabel(tr("Coordinates system to read in CSV files:"));
         p.add(jLabelRes, GBC.std().insets(0, 5, 10, 0));
         ButtonGroup bgCoordinates = new ButtonGroup();
@@ -116,5 +116,5 @@
         general.add(jLabelOapi, GBC.std().insets(0, 5, 10, 0));
         general.add(oapi, GBC.eol().fill(GBC.HORIZONTAL).insets(5, 5, 200, 5));
-        
+
         // option to set the XAPI server
         JLabel jLabelXapi = new JLabel(tr("XAPI server:"));
@@ -123,19 +123,19 @@
         general.add(jLabelXapi, GBC.std().insets(0, 5, 10, 0));
         general.add(xapi, GBC.eol().fill(GBC.HORIZONTAL).insets(5, 5, 200, 5));
-        
+
         // end of dialog, scroll bar
         general.add(Box.createVerticalGlue(), GBC.eol().fill(GBC.VERTICAL));
-        
+
         return general;
     }
-    
+
     @Override
     public boolean ok() {
         boolean result = modulePref.ok();
-           //Main.pref.put(PREF_COORDINATES, rbWGS84.isSelected() ? VALUE_WGS84 : VALUE_CC9ZONES);
-           Main.pref.put(OdConstants.PREF_OAPI, oapi.getText());
-           Main.pref.put(OdConstants.PREF_XAPI, xapi.getText());
-           Main.pref.put(OdConstants.PREF_RAWDATA, rawData.isSelected());
-        
+        //Main.pref.put(PREF_COORDINATES, rbWGS84.isSelected() ? VALUE_WGS84 : VALUE_CC9ZONES);
+        Main.pref.put(OdConstants.PREF_OAPI, oapi.getText());
+        Main.pref.put(OdConstants.PREF_XAPI, xapi.getText());
+        Main.pref.put(OdConstants.PREF_RAWDATA, rawData.isSelected());
+
         // create a task for downloading modules if the user has activated, yet not downloaded,
         // new modules
@@ -143,13 +143,14 @@
         final List<ModuleInformation> toDownload = modulePref.getModulesScheduledForUpdateOrDownload();
         final ModuleDownloadTask task;
-        if (toDownload != null && ! toDownload.isEmpty()) {
+        if (toDownload != null && !toDownload.isEmpty()) {
             task = new ModuleDownloadTask(masterPanel, toDownload, tr("Download modules"));
         } else {
             task = null;
         }
-        
+
         // this is the task which will run *after* the modules are downloaded
         //
         final Runnable continuation = new Runnable() {
+            @Override
             public void run() {
                 boolean requiresRestart = false;
@@ -195,4 +196,5 @@
             Main.worker.submit(
                     new Runnable() {
+                        @Override
                         public void run() {
                             SwingUtilities.invokeLater(continuation);
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ProjectionChooser.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ProjectionChooser.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ProjectionChooser.java	(revision 32545)
@@ -52,5 +52,5 @@
     private JLabel projectionName = new JLabel();
     private JLabel bounds = new JLabel();
-    
+
     /**
      * This is the panel holding all projection preferences
@@ -68,5 +68,5 @@
         this(parent, tr("Projection method"), new String[] {tr("OK"), tr("Cancel")});
     }
-    
+
     protected ProjectionChooser(Component parent, String title, String[] buttonTexts) {
         super(parent, title, buttonTexts);
@@ -74,21 +74,21 @@
         addGui();
     }
-    
+
     public void addGui() {
-        projPanel.setBorder(BorderFactory.createEmptyBorder( 0, 0, 0, 0 ));
+        projPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
         projPanel.setLayout(new GridBagLayout());
-        projPanel.add(new JLabel(tr("Projection method")), GBC.std().insets(5,5,0,5));
-        projPanel.add(GBC.glue(5,0), GBC.std().fill(GBC.HORIZONTAL));
-        projPanel.add(projectionCombo, GBC.eop().fill(GBC.HORIZONTAL).insets(0,5,5,5));
-        projPanel.add(projectionCodeLabel = new JLabel(tr("Projection code")), GBC.std().insets(25,5,0,5));
-        projPanel.add(projectionCodeGlue = GBC.glue(5,0), GBC.std().fill(GBC.HORIZONTAL));
-        projPanel.add(projectionCode, GBC.eop().fill(GBC.HORIZONTAL).insets(0,5,5,5));
-        projPanel.add(projectionNameLabel = new JLabel(tr("Projection name")), GBC.std().insets(25,5,0,5));
-        projPanel.add(projectionNameGlue = GBC.glue(5,0), GBC.std().fill(GBC.HORIZONTAL));
-        projPanel.add(projectionName, GBC.eop().fill(GBC.HORIZONTAL).insets(0,5,5,5));
-        projPanel.add(new JLabel(tr("Bounds")), GBC.std().insets(25,5,0,5));
-        projPanel.add(GBC.glue(5,0), GBC.std().fill(GBC.HORIZONTAL));
-        projPanel.add(bounds, GBC.eop().fill(GBC.HORIZONTAL).insets(0,5,5,5));
-        projPanel.add(projSubPrefPanelWrapper, GBC.eol().fill(GBC.HORIZONTAL).insets(20,5,5,5));
+        projPanel.add(new JLabel(tr("Projection method")), GBC.std().insets(5, 5, 0, 5));
+        projPanel.add(GBC.glue(5, 0), GBC.std().fill(GBC.HORIZONTAL));
+        projPanel.add(projectionCombo, GBC.eop().fill(GBC.HORIZONTAL).insets(0, 5, 5, 5));
+        projPanel.add(projectionCodeLabel = new JLabel(tr("Projection code")), GBC.std().insets(25, 5, 0, 5));
+        projPanel.add(projectionCodeGlue = GBC.glue(5, 0), GBC.std().fill(GBC.HORIZONTAL));
+        projPanel.add(projectionCode, GBC.eop().fill(GBC.HORIZONTAL).insets(0, 5, 5, 5));
+        projPanel.add(projectionNameLabel = new JLabel(tr("Projection name")), GBC.std().insets(25, 5, 0, 5));
+        projPanel.add(projectionNameGlue = GBC.glue(5, 0), GBC.std().fill(GBC.HORIZONTAL));
+        projPanel.add(projectionName, GBC.eop().fill(GBC.HORIZONTAL).insets(0, 5, 5, 5));
+        projPanel.add(new JLabel(tr("Bounds")), GBC.std().insets(25, 5, 0, 5));
+        projPanel.add(GBC.glue(5, 0), GBC.std().fill(GBC.HORIZONTAL));
+        projPanel.add(bounds, GBC.eop().fill(GBC.HORIZONTAL).insets(0, 5, 5, 5));
+        projPanel.add(projSubPrefPanelWrapper, GBC.eol().fill(GBC.HORIZONTAL).insets(20, 5, 5, 5));
 
         selectedProjectionChanged((ProjectionChoice) projectionCombo.getSelectedItem());
@@ -102,9 +102,9 @@
         setContent(projPanel);
     }
-    
+
     private void selectedProjectionChanged(final ProjectionChoice pc) {
         // Don't try to update if we're still starting up
         int size = projPanel.getComponentCount();
-        if(size < 1)
+        if (size < 1)
             return;
 
@@ -124,5 +124,5 @@
         updateMeta(pc);
     }
-    
+
     private void updateMeta(ProjectionChoice pc) {
         pc.setPreferences(pc.getPreferences(projSubPrefPanel));
@@ -132,5 +132,6 @@
         Bounds b = proj.getWorldBoundsLatLon();
         CoordinateFormat cf = CoordinateFormat.getDefaultFormat();
-        bounds.setText(b.getMin().lonToString(cf)+", "+b.getMin().latToString(cf)+" : "+b.getMax().lonToString(cf)+", "+b.getMax().latToString(cf));
+        bounds.setText(b.getMin().lonToString(cf)+", "+b.getMin().latToString(cf)+" : "+
+                       b.getMax().lonToString(cf)+", "+b.getMax().latToString(cf));
         boolean showCode = true;
         boolean showName = false;
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/LambertCC9ZonesProjectionPatterns.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/LambertCC9ZonesProjectionPatterns.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/LambertCC9ZonesProjectionPatterns.java	(revision 32545)
@@ -10,8 +10,8 @@
 
 public class LambertCC9ZonesProjectionPatterns extends ProjectionPatterns {
-    
+
     public static final Projection[] lambertCC9Zones = new Projection[9];
     static {
-        for (int i=0; i<lambertCC9Zones.length; i++) {
+        for (int i = 0; i < lambertCC9Zones.length; i++) {
             lambertCC9Zones[i] = Projections.getProjectionByCode("EPSG:"+Integer.toString(3942+i));
         }
@@ -32,5 +32,6 @@
         String ccy = mx.group(1);
         if (!ccx.equals(ccy)) {
-            throw new IllegalArgumentException(tr("''Lambert CC 9 zones'' coordinates found with different zone codes for X and Y: "+xFieldName+", "+yFieldName));
+            throw new IllegalArgumentException(
+                    tr("''Lambert CC 9 zones'' coordinates found with different zone codes for X and Y: "+xFieldName+", "+yFieldName));
         }
         return lambertCC9Zones[Integer.parseInt(ccx)-42];
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 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NeptuneReader.java	(revision 32545)
@@ -22,4 +22,17 @@
 import javax.xml.validation.SchemaFactory;
 import javax.xml.validation.Validator;
+
+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;
+import org.openstreetmap.josm.data.osm.Relation;
+import org.openstreetmap.josm.data.osm.RelationMember;
+import org.openstreetmap.josm.gui.progress.ProgressMonitor;
+import org.openstreetmap.josm.io.AbstractReader;
+import org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler;
+import org.openstreetmap.josm.plugins.opendata.core.datasets.fr.FrenchConstants;
+import org.xml.sax.SAXException;
 
 import neptune.ChouetteAreaType;
@@ -37,17 +50,4 @@
 import neptune.StopPointType;
 import neptune.TridentObjectType;
-
-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;
-import org.openstreetmap.josm.data.osm.Relation;
-import org.openstreetmap.josm.data.osm.RelationMember;
-import org.openstreetmap.josm.gui.progress.ProgressMonitor;
-import org.openstreetmap.josm.io.AbstractReader;
-import org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler;
-import org.openstreetmap.josm.plugins.opendata.core.datasets.fr.FrenchConstants;
-import org.xml.sax.SAXException;
 
 /**
@@ -127,9 +127,9 @@
         Unmarshaller u = jc.createUnmarshaller();
         @SuppressWarnings("unchecked")
-        JAXBElement<T> doc = (JAXBElement<T>)u.unmarshal(inputStream);
+        JAXBElement<T> doc = (JAXBElement<T>) u.unmarshal(inputStream);
         return doc.getValue();
     }
 
-    private final void linkTridentObjectToOsmPrimitive(TridentObjectType object, OsmPrimitive p) {
+    private void linkTridentObjectToOsmPrimitive(TridentObjectType object, OsmPrimitive p) {
         p.put("ref:neptune", object.getObjectId());
         if (tridentObjects.put(object.getObjectId(), p) != null) {
@@ -138,5 +138,5 @@
     }
 
-    protected Node createNode(LatLon latlon){
+    protected Node createNode(LatLon latlon) {
         Node n = new Node(latlon);
         ds.addPrimitive(n);
@@ -152,5 +152,5 @@
     }
 
-    protected Relation createRelation(String type){
+    protected Relation createRelation(String type) {
         Relation r = new Relation();
         r.put("type", type);
@@ -159,5 +159,5 @@
     }
 
-    protected Relation createPtRelation(String pt, TridentObjectType object){
+    protected Relation createPtRelation(String pt, TridentObjectType object) {
         Relation r = createRelation(OSM_PUBLIC_TRANSPORT);
         r.put(OSM_PUBLIC_TRANSPORT, pt);
@@ -349,6 +349,6 @@
     }
 
-    private static final boolean addStopToRoute(Relation route, OsmPrimitive stop) {
-        if (route.getMembersCount() == 0 || !route.getMember(route.getMembersCount()-1).getMember().equals(stop) ) {
+    private static boolean addStopToRoute(Relation route, OsmPrimitive stop) {
+        if (route.getMembersCount() == 0 || !route.getMember(route.getMembersCount()-1).getMember().equals(stop)) {
             route.addMember(new RelationMember(stop.get(OSM_PUBLIC_TRANSPORT), stop));
             return true;
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NetworkReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NetworkReader.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NetworkReader.java	(revision 32545)
@@ -42,5 +42,5 @@
     private File file;
     private String filename;
-    
+
     /**
      * File readers
@@ -58,5 +58,5 @@
         FILE_READERS.put(OdConstants.TAB_EXT, TabReader.class);
     }
-    
+
     public static final Map<String, Class<? extends AbstractReader>> FILE_AND_ARCHIVE_READERS = new HashMap<>(FILE_READERS);
     static {
@@ -72,5 +72,5 @@
         this.promptUser = promptUser;
     }
-    
+
     public final File getReadFile() {
         return file;
@@ -105,5 +105,5 @@
         } else if (contentType.startsWith("text/csv")) {
             return CsvReader.class;
-        } else if (contentType.startsWith("text/plain")) {//TODO: extract charset
+        } else if (contentType.startsWith("text/plain")) { //TODO: extract charset
             return CsvReader.class;
         } else if (contentType.startsWith("tdyn/html")) {
@@ -144,5 +144,5 @@
             }
             if (readerClass == null) {
-                   throw new OsmTransferException("Cannot find appropriate reader !");//TODO handler job ?
+                throw new OsmTransferException("Cannot find appropriate reader !"); //TODO handler job ?
             } else if (findReaderByExtension(url) != null) {
                 filename = url.substring(url.lastIndexOf('/')+1);
@@ -150,9 +150,9 @@
             instance = progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false);
             if (readerClass.equals(ZipReader.class) || readerClass.equals(SevenZipReader.class)) {
-                ArchiveReader zipReader = readerClass.equals(ZipReader.class) 
+                ArchiveReader zipReader = readerClass.equals(ZipReader.class)
                         ? new ZipReader(in, handler, promptUser) : new SevenZipReader(in, handler, promptUser);
-                DataSet ds = zipReader.parseDoc(instance);
-                file = zipReader.getReadFile();
-                return ds;
+                        DataSet ds = zipReader.parseDoc(instance);
+                        file = zipReader.getReadFile();
+                        return ds;
             } else if (readerClass.equals(KmlReader.class)) {
                 return KmlReader.parseDataSet(in, instance);
@@ -189,5 +189,7 @@
                     in.close();
                 }
-            } catch (Exception e) {/* ignore it */}
+            } catch (Exception e) {
+                Main.trace(e);
+            }
         }
     }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/OsmDownloader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/OsmDownloader.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/OsmDownloader.java	(revision 32545)
@@ -9,7 +9,11 @@
 import org.openstreetmap.josm.plugins.opendata.core.OdConstants;
 
-public class OsmDownloader {
-    
-    public static final void downloadOapi(String oapiReq) {
+public final class OsmDownloader {
+
+    private OsmDownloader() {
+        // Hide default constructor for utilities classes
+    }
+
+    public static void downloadOapi(String oapiReq) {
         if (oapiReq != null) {
             try {
@@ -23,6 +27,6 @@
         }
     }
-    
-    public static final void downloadXapi(Collection<String> xapiReqs) {
+
+    public static void downloadXapi(Collection<String> xapiReqs) {
         if (xapiReqs != null) {
             String xapiServer = Main.pref.get(OdConstants.PREF_XAPI, OdConstants.DEFAULT_XAPI);
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 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/OverpassApi.java	(revision 32545)
@@ -5,28 +5,42 @@
 
     public enum OaQueryType {
-        NODE ("node"),
-        WAY ("way"),
-        RELATION ("relation");
+        NODE("node"),
+        WAY("way"),
+        RELATION("relation");
+
         @Override
-        public String toString() { return this.value; }
-        private OaQueryType(final String value) { this.value = value; }
+        public String toString() {
+            return this.value;
+        }
+
+        OaQueryType(final String value) {
+            this.value = value;
+        }
+
         private final String value;
     }
 
     public enum OaRecurseType {
-        RELATION_RELATION ("relation-relation"),
-        RELATION_BACKWARDS ("relation-backwards"),
-        RELATION_WAY ("relation-way"),
-        RELATION_NODE ("relation-node"),
-        WAY_NODE ("way-node"),
-        WAY_RELATION ("way-relation"),
-        NODE_RELATION ("node-relation"),
-        NODE_WAY ("node-way");
+        RELATION_RELATION("relation-relation"),
+        RELATION_BACKWARDS("relation-backwards"),
+        RELATION_WAY("relation-way"),
+        RELATION_NODE("relation-node"),
+        WAY_NODE("way-node"),
+        WAY_RELATION("way-relation"),
+        NODE_RELATION("node-relation"),
+        NODE_WAY("node-way");
+
         @Override
-        public String toString() { return this.value; }
-        private OaRecurseType(final String value) { this.value = value; }
+        public String toString() {
+            return this.value;
+        }
+
+        OaRecurseType(final String value) {
+            this.value = value;
+        }
+
         private final String value;
     }
-    
+
     public static final String union(String ... queries) {
         String result = "<union>\n";
@@ -39,5 +53,5 @@
         return result;
     }
-    
+
     public static final String query(String bbox, OaQueryType type, String ... conditions) {
         String result = "<query type=\""+type+"\" >\n";
@@ -65,9 +79,9 @@
         return result;
     }
-    
+
     public static final String print() {
         return "<print mode=\"meta\"/>";
     }
-    
+
     public static final String hasKey(String key) {
         return hasKey(key, null);
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ArchiveHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ArchiveHandler.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ArchiveHandler.java	(revision 32545)
@@ -6,8 +6,8 @@
 public interface ArchiveHandler {
 
-    public void notifyTempFileWritten(File file);
+    void notifyTempFileWritten(File file);
 
-    public boolean skipXsdValidation();
+    boolean skipXsdValidation();
 
-    public void setSkipXsdValidation(boolean skip);
+    void setSkipXsdValidation(boolean skip);
 }
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 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ArchiveReader.java	(revision 32545)
@@ -52,21 +52,21 @@
         this.promptUser = promptUser;
     }
-    
+
     public final File getReadFile() {
         return file;
     }
-    
+
     protected abstract void extractArchive(final File temp, final List<File> candidates) throws IOException, FileNotFoundException;
-    
+
     protected abstract String getTaskMessage();
-    
+
     protected Collection<File> getDocsToParse(final File temp, final ProgressMonitor progressMonitor) throws FileNotFoundException, IOException {
         final List<File> candidates = new ArrayList<>();
-        
+
         if (progressMonitor != null) {
             progressMonitor.beginTask(getTaskMessage());
         }
         extractArchive(temp, candidates);
-        
+
         if (promptUser && candidates.size() > 1) {
             DialogPrompter<CandidateChooser> prompt = new DialogPrompter<CandidateChooser>() {
@@ -84,6 +84,7 @@
         return Collections.emptyList();
     }
-    
-    public Map<File, DataSet> parseDocs(final ProgressMonitor progressMonitor) throws IOException, XMLStreamException, FactoryConfigurationError, JAXBException {
+
+    public Map<File, DataSet> parseDocs(final ProgressMonitor progressMonitor)
+            throws IOException, XMLStreamException, FactoryConfigurationError, JAXBException {
         Map<File, DataSet> result = new HashMap<>();
         File temp = OdUtils.createTempDir();
@@ -104,15 +105,16 @@
         return result;
     }
-    
-    public DataSet parseDoc(final ProgressMonitor progressMonitor) throws IOException, XMLStreamException, FactoryConfigurationError, JAXBException  {
+
+    public DataSet parseDoc(final ProgressMonitor progressMonitor)
+            throws IOException, XMLStreamException, FactoryConfigurationError, JAXBException {
         File temp = OdUtils.createTempDir();
-        
+
         try {
-            file = null;        
+            file = null;
             Collection<File> files = getDocsToParse(temp, progressMonitor);
             if (!files.isEmpty()) {
                 file = files.iterator().next();
             }
-            
+
             DataSet from = getDataForFile(file, progressMonitor);
             if (from != null) {
@@ -127,5 +129,5 @@
             }
         }
-        
+
         return ds;
     }
@@ -186,5 +188,5 @@
         }
         // Special treatment for XML files (check supported XSD), unless handler explicitely skip it
-        if (XmlImporter.XML_FILE_FILTER.accept(file) && ((archiveHandler != null && archiveHandler.skipXsdValidation()) 
+        if (XmlImporter.XML_FILE_FILTER.accept(file) && ((archiveHandler != null && archiveHandler.skipXsdValidation())
                 || OdPlugin.getInstance().xmlImporter.acceptFile(file))) {
             candidates.add(file);
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/CandidateChooser.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/CandidateChooser.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/CandidateChooser.java	(revision 32545)
@@ -32,5 +32,5 @@
         this(parent, tr("File to load"), new String[] {tr("OK"), tr("Cancel")}, candidates);
     }
-    
+
     private class Renderer extends DefaultListCellRenderer {
 
@@ -40,10 +40,10 @@
             super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
             if (value instanceof File) {
-                setText(((File)value).getName());
+                setText(((File) value).getName());
             }
             return this;
         }
     }
-    
+
     protected CandidateChooser(Component parent, String title, String[] buttonTexts, List<File> candidates) {
         super(parent, title, buttonTexts);
@@ -52,19 +52,19 @@
         addGui(candidates);
     }
-    
+
     public void addGui(List<File> candidates) {
-        projPanel.setBorder(BorderFactory.createEmptyBorder( 0, 0, 0, 0 ));
+        projPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
         projPanel.setLayout(new GridBagLayout());
-        projPanel.add(new JLabel(tr("File to load")), GBC.std().insets(5,5,0,5));
-        projPanel.add(GBC.glue(5,0), GBC.std().fill(GBC.HORIZONTAL));
+        projPanel.add(new JLabel(tr("File to load")), GBC.std().insets(5, 5, 0, 5));
+        projPanel.add(GBC.glue(5, 0), GBC.std().fill(GBC.HORIZONTAL));
         /*for (File file : candidates) {
             JCheckBox cbox = new JCheckBox(file.getName());
             checkBoxes.put(cbox, file);
-            projPanel.add(cbox, GBC.eop().fill(GBC.HORIZONTAL).insets(0,5,5,5));
+            projPanel.add(cbox, GBC.eop().fill(GBC.HORIZONTAL).insets(0, 5, 5, 5));
         }*/
-        projPanel.add(fileCombo, GBC.eop().fill(GBC.HORIZONTAL).insets(0,5,5,5));
+        projPanel.add(fileCombo, GBC.eop().fill(GBC.HORIZONTAL).insets(0, 5, 5, 5));
         setContent(projPanel);
     }
-    
+
     /*public List<File> getSelectedFiles() {
         List<File> result = new ArrayList<File>();
@@ -76,5 +76,5 @@
         return result;
     }*/
-    
+
     public File getSelectedFile() {
         return (File) fileCombo.getSelectedItem();
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 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/SevenZipReader.java	(revision 32545)
@@ -33,5 +33,5 @@
 
     private final IInArchive archive = new Handler();
-    
+
     public SevenZipReader(InputStream in, AbstractDataSetHandler handler, boolean promptUser) throws IOException {
         super(handler, handler != null ? handler.getArchiveHandler() : null, promptUser);
@@ -52,11 +52,11 @@
         }
     }
-    
-    public static DataSet parseDataSet(InputStream in, AbstractDataSetHandler handler, ProgressMonitor instance, boolean promptUser) 
+
+    public static DataSet parseDataSet(InputStream in, AbstractDataSetHandler handler, ProgressMonitor instance, boolean promptUser)
             throws IOException, XMLStreamException, FactoryConfigurationError, JAXBException {
         return new SevenZipReader(in, handler, promptUser).parseDoc(instance);
     }
 
-    public static Map<File, DataSet> parseDataSets(InputStream in, AbstractDataSetHandler handler, ProgressMonitor instance, boolean promptUser) 
+    public static Map<File, DataSet> parseDataSets(InputStream in, AbstractDataSetHandler handler, ProgressMonitor instance, boolean promptUser)
             throws IOException, XMLStreamException, FactoryConfigurationError, JAXBException {
         return new SevenZipReader(in, handler, promptUser).parseDocs(instance);
@@ -73,9 +73,9 @@
         archive.close();
     }
-    
+
     private class ExtractCallback extends ArchiveExtractCallback {
         private final List<File> candidates;
-        
-        public ExtractCallback(IInArchive archive, File tempDir, List<File> candidates) {
+
+        ExtractCallback(IInArchive archive, File tempDir, List<File> candidates) {
             Init(archive);
             super.outputDir = tempDir.getPath();
@@ -83,5 +83,5 @@
         }
 
-        @Override 
+        @Override
         public int GetStream(int index, OutputStream[] outStream, int askExtractMode) throws IOException {
             int res = super.GetStream(index, outStream, askExtractMode);
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 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/AbstractMapInfoReader.java	(revision 32545)
@@ -23,9 +23,9 @@
     protected static final String VERSION_450 = "450";
 
-    protected static final String CHARSET_WINDOWS_LATIN    = "WindowsLatin1";
+    protected static final String CHARSET_WINDOWS_LATIN = "WindowsLatin1";
     protected static final String CHARSET_WINDOWS_CYRILLIC = "WindowsCyrillic";
     protected static final String CHARSET_NEUTRAL = "Neutral";
-    protected static final String CHARSET_MAC     = "MacRoman";
-    
+    protected static final String CHARSET_MAC = "MacRoman";
+
     protected BufferedReader headerReader;
 
@@ -47,5 +47,5 @@
         return dataFile;
     }
-    
+
     protected final BufferedReader getDataReader(File headerFile, String extension, Charset charset) throws IOException {
         File dataFile = getDataFile(headerFile, extension);
@@ -76,5 +76,5 @@
         version = words[1];
     }
-    
+
     protected void parseColumns(String[] words) {
         columns = new ArrayList<>();
@@ -88,5 +88,5 @@
                 line = line.replace("  ", " ");
             }
-            String [] words = line.isEmpty() ? null : line.trim().split(" ");
+            String[] words = line.isEmpty() ? null : line.trim().split(" ");
             if (words != null && words.length > 0) {
                 parseHeaderLine(words);
@@ -94,5 +94,5 @@
         }
     }
-    
+
     protected abstract void parseHeaderLine(String[] words) throws IOException;
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/DefaultShpHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/DefaultShpHandler.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/DefaultShpHandler.java	(revision 32545)
@@ -37,23 +37,24 @@
 public class DefaultShpHandler extends DefaultGeographicHandler implements ShpHandler {
 
-    private static final List<Pair<org.opengis.referencing.datum.Ellipsoid, Ellipsoid>> 
-        ellipsoids = new ArrayList<>();
+    private static final List<Pair<org.opengis.referencing.datum.Ellipsoid, Ellipsoid>>
+    ellipsoids = new ArrayList<>();
     static {
         ellipsoids.add(new Pair<org.opengis.referencing.datum.Ellipsoid, Ellipsoid>(DefaultEllipsoid.GRS80, Ellipsoid.GRS80));
         ellipsoids.add(new Pair<org.opengis.referencing.datum.Ellipsoid, Ellipsoid>(DefaultEllipsoid.WGS84, Ellipsoid.WGS84));
     }
-    
+
     protected static final Double get(ParameterValueGroup values, ParameterDescriptor<?> desc) {
         return (Double) values.parameter(desc.getName().getCode()).getValue();
     }
-    
-    private static final boolean equals(Double a, Double b) {
-        boolean res = Math.abs(a - b) <= Main.pref.getDouble(OdConstants.PREF_CRS_COMPARISON_TOLERANCE, OdConstants.DEFAULT_CRS_COMPARISON_TOLERANCE);
+
+    private static boolean equals(Double a, Double b) {
+        boolean res = Math.abs(a - b) <= Main.pref.getDouble(
+                OdConstants.PREF_CRS_COMPARISON_TOLERANCE, OdConstants.DEFAULT_CRS_COMPARISON_TOLERANCE);
         if (Main.pref.getBoolean(OdConstants.PREF_CRS_COMPARISON_DEBUG, false)) {
             Main.debug("Comparing "+a+" and "+b+" -> "+res);
         }
-        return res; 
+        return res;
     }
-    
+
     private Charset dbfCharset = null;
 
@@ -80,5 +81,5 @@
                                     ParameterValueGroup values = lambert.getParameterValues();
                                     Parameters params = ((LambertConformalConic) ap.getProj()).getParameters();
-                                    
+
                                     ok = ok ? equals(get(values, AbstractProvider.LATITUDE_OF_ORIGIN), params.latitudeOrigin) : ok;
                                     ok = ok ? equals(get(values, AbstractProvider.CENTRAL_MERIDIAN), ap.getCentralMeridian()) : ok;
@@ -86,12 +87,14 @@
                                     ok = ok ? equals(get(values, AbstractProvider.FALSE_EASTING), ap.getFalseEasting()) : ok;
                                     ok = ok ? equals(get(values, AbstractProvider.FALSE_NORTHING), ap.getFalseNorthing()) : ok;
-                                    
+
                                     if (lambert instanceof LambertConformal2SP && params instanceof Parameters2SP) {
                                         Parameters2SP param = (Parameters2SP) params;
-                                        ok = ok ? equals(Math.min(get(values, AbstractProvider.STANDARD_PARALLEL_1),get(values, AbstractProvider.STANDARD_PARALLEL_2)), 
-                                                         Math.min(param.standardParallel1, param.standardParallel2)) : ok;
-                                        ok = ok ? equals(Math.max(get(values, AbstractProvider.STANDARD_PARALLEL_1), get(values, AbstractProvider.STANDARD_PARALLEL_2)),
-                                                         Math.max(param.standardParallel1, param.standardParallel2)) : ok;
-                                        
+                                        ok = ok ? equals(Math.min(get(values, AbstractProvider.STANDARD_PARALLEL_1),
+                                                get(values, AbstractProvider.STANDARD_PARALLEL_2)),
+                                                Math.min(param.standardParallel1, param.standardParallel2)) : ok;
+                                        ok = ok ? equals(Math.max(get(values, AbstractProvider.STANDARD_PARALLEL_1),
+                                                get(values, AbstractProvider.STANDARD_PARALLEL_2)),
+                                                Math.max(param.standardParallel1, param.standardParallel2)) : ok;
+
                                     } else if (!(lambert instanceof LambertConformal1SP && params instanceof Parameters1SP)) {
                                         ok = false;
@@ -130,5 +133,5 @@
         dbfCharset = charset;
     }
-    
+
     @Override
     public Charset getDbfCharset() {
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GeographicHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GeographicHandler.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GeographicHandler.java	(revision 32545)
@@ -8,19 +8,20 @@
 
 public interface GeographicHandler {
-    
-    public void setPreferMultipolygonToSimpleWay(boolean prefer);
 
-    public boolean preferMultipolygonToSimpleWay();
+    void setPreferMultipolygonToSimpleWay(boolean prefer);
 
-    public void setCheckNodeProximity(boolean check);
-    
-    public boolean checkNodeProximity();
-    
-    public void setUseNodeMap(boolean use);
-    
-    public boolean useNodeMap();
-    
-    public CoordinateReferenceSystem getCrsFor(String crsName) throws NoSuchAuthorityCodeException, FactoryException;
+    boolean preferMultipolygonToSimpleWay();
 
-    public MathTransform findMathTransform(CoordinateReferenceSystem sourceCRS, CoordinateReferenceSystem targetCRS, boolean lenient) throws FactoryException;
+    void setCheckNodeProximity(boolean check);
+
+    boolean checkNodeProximity();
+
+    void setUseNodeMap(boolean use);
+
+    boolean useNodeMap();
+
+    CoordinateReferenceSystem getCrsFor(String crsName) throws NoSuchAuthorityCodeException, FactoryException;
+
+    MathTransform findMathTransform(CoordinateReferenceSystem sourceCRS, CoordinateReferenceSystem targetCRS, boolean lenient)
+            throws FactoryException;
 }
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 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GeographicReader.java	(revision 32545)
@@ -66,8 +66,8 @@
         }
     }
-    
+
     private final GeographicHandler handler;
     private final GeographicHandler[] defaultHandlers;
-    
+
     protected final Map<LatLon, Node> nodes;
 
@@ -80,5 +80,5 @@
         this.defaultHandlers = defaultHandlers;
     }
-    
+
     protected Node getNode(Point p, LatLon key) {
         Node n = nodes.get(key);
@@ -120,5 +120,5 @@
         return n;
     }
-    
+
     protected Node createOrGetEmptyNode(Point p) throws MismatchedDimensionException, TransformException {
         Point p2 = (Point) JTS.transform(p, transform);
@@ -140,5 +140,5 @@
         return n;
     }
-        
+
     protected <T extends OsmPrimitive> T addOsmPrimitive(T p) {
         ds.addPrimitive(p);
@@ -154,6 +154,6 @@
         Way tempWay = new Way();
         if (ls != null) {
-            // Build list of nodes 
-            for (int i=0; i<ls.getNumPoints(); i++) {
+            // Build list of nodes
+            for (int i = 0; i < ls.getNumPoints(); i++) {
                 try {
                     tempWay.addNode(createOrGetNode(ls.getPointN(i)));
@@ -195,5 +195,5 @@
         r.addMember(new RelationMember(role, w));
     }
-    
+
     /**
      * returns true if the user wants to cancel, false if they
@@ -207,13 +207,15 @@
                         tr("Cannot transform to WGS84"),
                         new String[] {tr("Cancel"), tr("Continue")});
+                // CHECKSTYLE.OFF: LineLength
                 dlg.setContent("<html>" +
                         tr("JOSM was unable to find a strict mathematical transformation between ''{0}'' and WGS84.<br /><br />"+
-                                "Do you want to try a <i>lenient</i> method, which will perform a non-precise transformation (<b>with location errors up to 1 km</b>) ?<br/><br/>"+
-                                "If so, <b>do NOT upload</b> such data to OSM !", crs.getName())+
+                        "Do you want to try a <i>lenient</i> method, which will perform a non-precise transformation (<b>with location errors up to 1 km</b>) ?<br/><br/>"+
+                        "If so, <b>do NOT upload</b> such data to OSM !", crs.getName())+
                         "</html>");
-               dlg.setButtonIcons(new Icon[] {
+                // CHECKSTYLE.ON: LineLength
+                dlg.setButtonIcons(new Icon[] {
                         new ImageProvider("cancel").setMaxSize(ImageSizes.LARGEICON).get(),
                         new ImageProvider("ok").setMaxSize(ImageSizes.LARGEICON).addOverlay(
-                                new ImageOverlay(new ImageProvider("warning-small"), 0.5,0.5,1.0,1.0)).get()});
+                                new ImageOverlay(new ImageProvider("warning-small"), 0.5, 0.5, 1.0, 1.0)).get()});
                 dlg.setToolTipTexts(new String[] {
                         tr("Cancel"),
@@ -225,6 +227,6 @@
         }.promptInEdt().getValue() != 2;
     }
-    
-    private static final void compareDebug(CoordinateReferenceSystem crs1, CoordinateReferenceSystem crs2) {
+
+    private static void compareDebug(CoordinateReferenceSystem crs1, CoordinateReferenceSystem crs2) {
         Main.debug("-- COMPARING "+crs1.getName()+" WITH "+crs2.getName()+" --");
         compareDebug("class", crs1.getClass(), crs2.getClass());
@@ -235,5 +237,5 @@
             Integer dim2 = cs2.getDimension();
             if (compareDebug("cs.dim", dim1, dim2)) {
-                for (int i = 0; i<dim1; i++) {
+                for (int i = 0; i < dim1; i++) {
                     compareDebug("cs.axis"+i, cs1.getAxis(i), cs1.getAxis(i));
                 }
@@ -258,31 +260,32 @@
         Main.debug("-- COMPARING FINISHED --");
     }
-    
-    private static final boolean compareDebug(String text, Object o1, Object o2) {
+
+    private static boolean compareDebug(String text, Object o1, Object o2) {
         return compareDebug(text, o1.equals(o2), o1, o2);
     }
-    
-    private static final boolean compareDebug(String text, IdentifiedObject o1, IdentifiedObject o2) {
-        return compareDebug(text, (AbstractIdentifiedObject)o1, (AbstractIdentifiedObject)o2);
-    }
-    
-    private static final boolean compareDebug(String text, AbstractIdentifiedObject o1, AbstractIdentifiedObject o2) {
+
+    private static boolean compareDebug(String text, IdentifiedObject o1, IdentifiedObject o2) {
+        return compareDebug(text, (AbstractIdentifiedObject) o1, (AbstractIdentifiedObject) o2);
+    }
+
+    private static boolean compareDebug(String text, AbstractIdentifiedObject o1, AbstractIdentifiedObject o2) {
         return compareDebug(text, o1.equals(o2, false), o1, o2);
     }
 
-    private static final boolean compareDebug(String text, boolean result, Object o1, Object o2) {
+    private static boolean compareDebug(String text, boolean result, Object o1, Object o2) {
         Main.debug(text + ": " + result + "("+o1+", "+o2+")");
         return result;
     }
-    
-    protected void findMathTransform(Component parent, boolean findSimiliarCrs) throws FactoryException, UserCancelException, GeoMathTransformException {
+
+    protected void findMathTransform(Component parent, boolean findSimiliarCrs)
+            throws FactoryException, UserCancelException, GeoMathTransformException {
         try {
             transform = CRS.findMathTransform(crs, wgs84);
         } catch (OperationNotFoundException e) {
             Main.info(crs.getName()+": "+e.getMessage()); // Bursa wolf parameters required.
-            
-            if (findSimiliarCrs) { 
+
+            if (findSimiliarCrs) {
                 List<CoordinateReferenceSystem> candidates = new ArrayList<>();
-                
+
                 // Find matching CRS with Bursa Wolf parameters in EPSG database
                 for (String code : CRS.getAuthorityFactory(false).getAuthorityCodes(ProjectedCRS.class)) {
@@ -290,8 +293,8 @@
                         CoordinateReferenceSystem candidate = CRS.decode(code);
                         if (candidate instanceof AbstractCRS && crs instanceof AbstractIdentifiedObject) {
-                            
-                            Hints.putSystemDefault(Hints.COMPARISON_TOLERANCE, 
-                                    Main.pref.getDouble(OdConstants.PREF_CRS_COMPARISON_TOLERANCE, OdConstants.DEFAULT_CRS_COMPARISON_TOLERANCE));
-                            if (((AbstractCRS)candidate).equals((AbstractIdentifiedObject)crs, false)) {
+
+                            Hints.putSystemDefault(Hints.COMPARISON_TOLERANCE, Main.pref.getDouble(
+                                    OdConstants.PREF_CRS_COMPARISON_TOLERANCE, OdConstants.DEFAULT_CRS_COMPARISON_TOLERANCE));
+                            if (((AbstractCRS) candidate).equals((AbstractIdentifiedObject) crs, false)) {
                                 Main.info("Found a potential CRS: "+candidate.getName());
                                 candidates.add(candidate);
@@ -302,13 +305,13 @@
                         }
                     } catch (FactoryException ex) {
-                        // Silently ignore exceptions
-                    }
-                }
-                
+                        Main.trace(ex);
+                    }
+                }
+
                 if (candidates.size() > 1) {
                     Main.warn("Found several potential CRS: "+Arrays.toString(candidates.toArray()));
                     // TODO: ask user which one to use
                 }
-                
+
                 if (candidates.size() > 0) {
                     CoordinateReferenceSystem newCRS = candidates.get(0);
@@ -320,5 +323,5 @@
                 }
             }
-            
+
             if (transform == null) {
                 if (handler != null) {
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GmlReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GmlReader.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GmlReader.java	(revision 32545)
@@ -62,5 +62,5 @@
         public MathTransform transform;
         public int dim;
-        public CrsData(CoordinateReferenceSystem crs, MathTransform transform, int dim) {
+        CrsData(CoordinateReferenceSystem crs, MathTransform transform, int dim) {
             this.crs = crs;
             this.transform = transform;
@@ -77,5 +77,6 @@
     }
 
-    public static DataSet parseDataSet(InputStream in, AbstractDataSetHandler handler, ProgressMonitor instance) throws IOException, XMLStreamException {
+    public static DataSet parseDataSet(InputStream in, AbstractDataSetHandler handler, ProgressMonitor instance)
+            throws IOException, XMLStreamException {
         InputStreamReader ir = UTFInputStreamReader.create(in, OdConstants.UTF8);
         XMLStreamReader parser = XMLInputFactory.newInstance().createXMLStreamReader(ir);
@@ -87,9 +88,10 @@
     }
 
-    private final boolean isElement(String element) {
+    private boolean isElement(String element) {
         return parser.getLocalName().matches("(gml:)?"+element);
     }
 
-    private DataSet parseDoc(ProgressMonitor instance) throws XMLStreamException, GeoCrsException, FactoryException, GeoMathTransformException, MismatchedDimensionException, TransformException {
+    private DataSet parseDoc(ProgressMonitor instance) throws XMLStreamException, GeoCrsException, FactoryException,
+    GeoMathTransformException, MismatchedDimensionException, TransformException {
         Component parent = instance != null ? instance.getWindowParent() : Main.parent;
         while (parser.hasNext()) {
@@ -147,5 +149,6 @@
     }
 
-    private void parseFeatureMember(Component parent) throws XMLStreamException, GeoCrsException, FactoryException, UserCancelException, GeoMathTransformException, MismatchedDimensionException, TransformException {
+    private void parseFeatureMember(Component parent) throws XMLStreamException, GeoCrsException, FactoryException,
+    UserCancelException, GeoMathTransformException, MismatchedDimensionException, TransformException {
         List<OsmPrimitive> list = new ArrayList<>();
         Way way = null;
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/KmlKmzImporter.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/KmlKmzImporter.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/KmlKmzImporter.java	(revision 32545)
@@ -14,7 +14,8 @@
 
 public class KmlKmzImporter extends AbstractImporter {
-    
+
     public static final ExtensionFileFilter KML_KMZ_FILE_FILTER = new ExtensionFileFilter(
-            OdConstants.KML_EXT+","+OdConstants.KMZ_EXT, OdConstants.KMZ_EXT, tr("KML/KMZ files") + " (*."+OdConstants.KML_EXT+",*."+OdConstants.KMZ_EXT+")");
+            OdConstants.KML_EXT+","+OdConstants.KMZ_EXT, OdConstants.KMZ_EXT, tr("KML/KMZ files") +
+            " (*."+OdConstants.KML_EXT+",*."+OdConstants.KMZ_EXT+")");
 
     public KmlKmzImporter() {
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 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/KmlReader.java	(revision 32545)
@@ -32,4 +32,5 @@
 public class KmlReader extends AbstractReader {
 
+    // CHECKSTYLE.OFF: SingleSpaceSeparator
     public static final String KML_PLACEMARK   = "Placemark";
     public static final String KML_NAME        = "name";
@@ -43,15 +44,17 @@
     public static final String KML_LINEAR_RING = "LinearRing";
     public static final String KML_COORDINATES = "coordinates";
-    
+    // CHECKSTYLE.ON: SingleSpaceSeparator
+
     public static Pattern COLOR_PATTERN = Pattern.compile("\\p{XDigit}{8}");
 
     private XMLStreamReader parser;
     private Map<LatLon, Node> nodes = new HashMap<>();
-    
+
     public KmlReader(XMLStreamReader parser) {
         this.parser = parser;
     }
 
-    public static DataSet parseDataSet(InputStream in, ProgressMonitor instance) throws IOException, XMLStreamException, FactoryConfigurationError {
+    public static DataSet parseDataSet(InputStream in, ProgressMonitor instance)
+            throws IOException, XMLStreamException, FactoryConfigurationError {
         InputStreamReader ir = UTFInputStreamReader.create(in);
         XMLStreamReader parser = XMLInputFactory.newInstance().createXMLStreamReader(ir);
@@ -71,5 +74,5 @@
         return ds;
     }
-    
+
     private static boolean keyIsIgnored(String key) {
         for (ProjectionPatterns pp : OdConstants.PROJECTIONS) {
@@ -80,5 +83,5 @@
         return false;
     }
-    
+
     private void parsePlaceMark(DataSet ds) throws XMLStreamException {
         List<OsmPrimitive> list = new ArrayList<>();
@@ -95,5 +98,5 @@
                     if (COLOR_PATTERN.matcher(s).matches()) {
                         // KML color format is aabbggrr, convert it to OSM (web) format: #rrggbb
-                        tags.put(KML_COLOR, '#'+s.substring(6,8)+s.substring(4,6)+s.substring(2,4));
+                        tags.put(KML_COLOR, '#'+s.substring(6, 8)+s.substring(4, 6)+s.substring(2, 4));
                     }
                 } else if (parser.getLocalName().equals(KML_NAME)) {
@@ -122,5 +125,5 @@
                 } else if (parser.getLocalName().equals(KML_COORDINATES)) {
                     String[] tab = parser.getElementText().trim().split("\\s");
-                    for (int i = 0; i < tab.length; i ++) {
+                    for (int i = 0; i < tab.length; i++) {
                         String[] values = tab[i].split(",");
                         if (values.length >= 2) {
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 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/KmzReader.java	(revision 32545)
@@ -20,14 +20,15 @@
 
     private ZipInputStream zis;
-    
+
     public KmzReader(ZipInputStream zis) {
         this.zis = zis;
     }
 
-    public static DataSet parseDataSet(InputStream in, ProgressMonitor instance) throws IOException, XMLStreamException, FactoryConfigurationError {
+    public static DataSet parseDataSet(InputStream in, ProgressMonitor instance)
+            throws IOException, XMLStreamException, FactoryConfigurationError {
         return new KmzReader(new ZipInputStream(in)).parseDoc(instance);
     }
 
-    private DataSet parseDoc(ProgressMonitor instance) throws IOException, XMLStreamException, FactoryConfigurationError  {
+    private DataSet parseDoc(ProgressMonitor instance) throws IOException, XMLStreamException, FactoryConfigurationError {
         ZipEntry entry;
         do {
@@ -59,5 +60,5 @@
             buffer = out.toByteArray();
         }
-        
+
         return KmlReader.parseDataSet(new ByteArrayInputStream(buffer), instance);
     }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifDatum.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifDatum.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifDatum.java	(revision 32545)
@@ -31,4 +31,5 @@
  */
 public enum MifDatum {
+    // CHECKSTYLE.OFF: LineLength
     ADINDAN(1, "Ethiopia, Mali, Senegal, Sudan", CLARKE_1880),
     AFGOOYE(2, "Somalia", KRASSOVSKY),
@@ -153,22 +154,28 @@
     ZANDERIJ(106, "", INTERNATIONAL),
     CUSTOM(999, null, null);
+    // CHECKSTYLE.ON: LineLength
 
     private final Integer code;
     private final String area;
     private final MifEllipsoid ellipsoid;
-    private MifDatum(Integer code, String area, MifEllipsoid ellipsoid) {
+
+    MifDatum(Integer code, String area, MifEllipsoid ellipsoid) {
         this.code = code;
         this.area = area;
         this.ellipsoid = ellipsoid;
     }
+
     public final Integer getCode() {
         return code;
     }
+
     public final String getArea() {
         return area;
     }
+
     public final MifEllipsoid getEllipsoid() {
         return ellipsoid;
     }
+
     public static MifDatum forCode(Integer code) {
         for (MifDatum p : values()) {
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifHandler.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifHandler.java	(revision 32545)
@@ -6,6 +6,6 @@
 public interface MifHandler extends GeographicHandler {
 
-    public void setCoordSysNonEarthProjection(Projection p);
-    
-    public Projection getCoordSysNonEarthProjection();
+    void setCoordSysNonEarthProjection(Projection p);
+
+    Projection getCoordSysNonEarthProjection();
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifProjection.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifProjection.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifProjection.java	(revision 32545)
@@ -36,17 +36,17 @@
     Transverse_Mercator_modified_for_Danish_System_45_Bornholm(23, "tmerc"),
     Transverse_Mercator_modified_for_Finnish_KKJ(24, "tmerc");
-    
+
     private final Integer code;
     private final String proj4id;
-    
-    private MifProjection(Integer code, String proj4id) {
+
+    MifProjection(Integer code, String proj4id) {
         this.code = code;
         this.proj4id = proj4id;
     }
-    
+
     public final Integer getCode() {
         return code;
     }
-    
+
     /**
      * Replies the Proj.4 identifier.
@@ -58,5 +58,5 @@
         return proj4id;
     }
-    
+
     public static MifProjection forCode(Integer code) {
         for (MifProjection p : values()) {
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifReader.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifReader.java	(revision 32545)
@@ -44,5 +44,5 @@
  * These files have been stored in reference directory to avoid future dead links.
  */
-public class MifReader extends AbstractMapInfoReader {
+public final class MifReader extends AbstractMapInfoReader {
 
     private enum State {
@@ -263,9 +263,11 @@
             if ((datum == GEODETIC_REFERENCE_SYSTEM_1980_GRS_80 || datum == CUSTOM) && equals(originLon, 3.0)) {
                 // This sounds good for Lambert 93 or Lambert CC 9
-                if (equals(originLat, 46.5) && equals(stdP1, 44.0) && equals(stdP2, 49.0) && equals(falseEasting, 700000.0) && equals(falseNorthing, 6600000.0)) {
+                if (equals(originLat, 46.5) && equals(stdP1, 44.0) && equals(stdP2, 49.0)
+                        && equals(falseEasting, 700000.0) && equals(falseNorthing, 6600000.0)) {
                     josmProj = Projections.getProjectionByCode("EPSG:2154"); // Lambert 93
                 } else if (equals(falseEasting, 1700000.0)) {
-                    for (int i=0; josmProj == null && i<9; i++) {
-                        if (equals(originLat, 42.0+i) && equals(stdP1, 41.25+i) && equals(stdP2, 42.75+i) && equals(falseNorthing, (i+1)*1000000.0 + 200000.0)) {
+                    for (int i = 0; josmProj == null && i < 9; i++) {
+                        if (equals(originLat, 42.0+i) && equals(stdP1, 41.25+i) && equals(stdP2, 42.75+i)
+                                && equals(falseNorthing, (i+1)*1000000.0 + 200000.0)) {
                             josmProj = Projections.getProjectionByCode("EPSG:"+Integer.toString(3942 + i)); // LambertCC9Zones
                         }
@@ -317,5 +319,5 @@
 
     private void parseCoordSys(String[] words) {
-        for (int i = 0; i<words.length; i++) {
+        for (int i = 0; i < words.length; i++) {
             words[i] = words[i].replace(",", "");
         }
@@ -327,4 +329,5 @@
             parseCoordSysSyntax2(words);
 
+            // CHECKSTYLE.OFF: LineLength
             // Syntax2 is not meant to be used for maps, and still... # 9592 happened
             // From MapInfo documentation:
@@ -334,4 +337,5 @@
             // the coordinate system. If the Projection clause is omitted, MapBasic uses a longitude, latitude coordinate system using the North American Datum of 1927 (NAD-27).
             // Use syntax 2 to explicitly define a non-Earth coordinate system, such as the coordinate system used in a floor plan or other CAD drawing.
+            // CHECKSTYLE.ON: LineLength
 
             if (handler != null && handler.getMifHandler() != null && handler.getMifHandler().getCoordSysNonEarthProjection() != null) {
@@ -596,5 +600,5 @@
                     Main.error("Incoherence between MID and MIF files ("+columns.size()+" columns vs "+fields.length+" fields)");
                 }
-                for (int i=0; i<Math.min(columns.size(), fields.length); i++) {
+                for (int i = 0; i < Math.min(columns.size(), fields.length); i++) {
                     String field = fields[i].trim();
                     /*if (field.startsWith("\"") && field.endsWith("\"")) {
@@ -609,5 +613,5 @@
     }
 
-    protected final Node createNode(String x, String y) {
+    protected Node createNode(String x, String y) {
         Node node = new Node(josmProj.eastNorth2latlon(new EastNorth(Double.parseDouble(x), Double.parseDouble(y))));
         ds.addPrimitive(node);
@@ -617,5 +621,5 @@
     /** Compare two doubles within a default epsilon */
     public static boolean equals(Double a, Double b) {
-        if (a==b) return true;
+        if (a == b) return true;
         // If the difference is less than epsilon, treat as equal.
         return Math.abs(a - b) < 0.0000001;
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifTabImporter.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifTabImporter.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifTabImporter.java	(revision 32545)
@@ -15,7 +15,8 @@
 
 public class MifTabImporter extends AbstractImporter {
-    
+
     public static final ExtensionFileFilter MIF_TAB_FILE_FILTER = new ExtensionFileFilter(
-            OdConstants.MIF_EXT+","+OdConstants.TAB_EXT, OdConstants.MIF_EXT, tr("MapInfo files") + " (*."+OdConstants.MIF_EXT+",*."+OdConstants.TAB_EXT+")");
+            OdConstants.MIF_EXT+","+OdConstants.TAB_EXT, OdConstants.MIF_EXT,
+            tr("MapInfo files") + " (*."+OdConstants.MIF_EXT+",*."+OdConstants.TAB_EXT+")");
 
     public MifTabImporter() {
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifUnit.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifUnit.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifUnit.java	(revision 32545)
@@ -22,12 +22,15 @@
     US_Survey_Feet(8),
     Yards(4);
-        
+
     private final Integer code;
-    private MifUnit(Integer code) {
+
+    MifUnit(Integer code) {
         this.code = code;
     }
+
     public final Integer getCode() {
         return code;
     }
+
     public static MifUnit forCode(Integer code) {
         for (MifUnit p : values()) {
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/ShpHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/ShpHandler.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/ShpHandler.java	(revision 32545)
@@ -10,8 +10,8 @@
 public interface ShpHandler extends GeographicHandler {
 
-    public void notifyFeatureParsed(Object feature, DataSet result, Set<OsmPrimitive> featurePrimitives);
+    void notifyFeatureParsed(Object feature, DataSet result, Set<OsmPrimitive> featurePrimitives);
 
-    public void setDbfCharset(Charset charset);
-    
-    public Charset getDbfCharset();
+    void setDbfCharset(Charset charset);
+
+    Charset getDbfCharset();
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/ShpReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/ShpReader.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/ShpReader.java	(revision 32545)
@@ -81,6 +81,6 @@
     }
 
-    private void parseFeature(Feature feature, final Component parent)
-            throws UserCancelException, GeoMathTransformException, FactoryException, GeoCrsException, MismatchedDimensionException, TransformException {
+    private void parseFeature(Feature feature, final Component parent) throws UserCancelException, GeoMathTransformException,
+    FactoryException, GeoCrsException, MismatchedDimensionException, TransformException {
         featurePrimitives.clear();
         GeometryAttribute geometry = feature.getDefaultGeometryProperty();
@@ -101,5 +101,5 @@
                                     tr("Warning: CRS not found"),
                                     JOptionPane.YES_NO_CANCEL_OPTION
-                            )) {
+                                    )) {
                                 crs = wgs84;
                             }
@@ -131,5 +131,5 @@
                     Way w = null;
 
-                    for (int i=0; i<nGeometries; i++) {
+                    for (int i = 0; i < nGeometries; i++) {
                         Geometry g = mp.getGeometryN(i);
                         if (g instanceof Polygon) {
@@ -137,5 +137,6 @@
                             // Do not create relation if there's only one polygon without interior ring
                             // except if handler prefers it
-                            if (r == null && (nGeometries > 1 || p.getNumInteriorRing() > 0 || (handler != null && handler.preferMultipolygonToSimpleWay()))) {
+                            if (r == null && (nGeometries > 1 || p.getNumInteriorRing() > 0 ||
+                                    (handler != null && handler.preferMultipolygonToSimpleWay()))) {
                                 r = createMultipolygon();
                             }
@@ -143,5 +144,5 @@
                             if (r != null) {
                                 addWayToMp(r, "outer", w);
-                                for (int j=0; j<p.getNumInteriorRing(); j++) {
+                                for (int j = 0; j < p.getNumInteriorRing(); j++) {
                                     addWayToMp(r, "inner", createOrGetWay(p.getInteriorRingN(j)));
                                 }
@@ -211,6 +212,6 @@
                 String typeName = typeNames[0];
 
-                FeatureSource<?,?> featureSource = dataStore.getFeatureSource(typeName);
-                FeatureCollection<?,?> collection = featureSource.getFeatures();
+                FeatureSource<?, ?> featureSource = dataStore.getFeatureSource(typeName);
+                FeatureCollection<?, ?> collection = featureSource.getFeatures();
                 FeatureIterator<?> iterator = collection.features();
 
@@ -259,5 +260,5 @@
     }
 
-    private static final void readNonGeometricAttributes(Feature feature, OsmPrimitive primitive) {
+    private static void readNonGeometricAttributes(Feature feature, OsmPrimitive primitive) {
         try {
             for (Property prop : feature.getProperties()) {
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 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/TabReader.java	(revision 32545)
@@ -32,5 +32,5 @@
     private Charset datCharset;
     private final AbstractDataSetHandler handler;
-    
+
     public TabReader(AbstractDataSetHandler handler) {
         this.handler = handler;
@@ -41,9 +41,9 @@
         return new TabReader(handler).parse(in, file, instance, Charset.forName(OdConstants.ISO8859_15));
     }
-        
+
     private class TabOsmReader extends SpreadSheetReader {
 
         private final DbaseFileReader dbfReader;
-        public TabOsmReader(SpreadSheetHandler handler, TabFiles tabFiles) throws IOException {
+        TabOsmReader(SpreadSheetHandler handler, TabFiles tabFiles) throws IOException {
             super(handler);
             this.dbfReader = new DbaseFileReader(tabFiles, false, datCharset, null);
@@ -63,5 +63,5 @@
             List<String> result = new ArrayList<>();
             Row row = dbfReader.readRow();
-            for (int i=0; i<columns.size(); i++) {
+            for (int i = 0; i < columns.size(); i++) {
                 Object o = row.read(i);
                 if (o != null) {
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/CsvHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/CsvHandler.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/CsvHandler.java	(revision 32545)
@@ -6,12 +6,12 @@
 public interface CsvHandler extends SpreadSheetHandler {
 
-    public void setCharset(Charset charset);
+    void setCharset(Charset charset);
 
-    public void setCharset(String charset);
+    void setCharset(String charset);
 
-    public Charset getCharset();
+    Charset getCharset();
 
-    public void setSeparator(String sep);
-    
-    public String getSeparator();
+    void setSeparator(String sep);
+
+    String getSeparator();
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/CsvImporter.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/CsvImporter.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/CsvImporter.java	(revision 32545)
@@ -10,4 +10,5 @@
 import java.io.InputStream;
 
+import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.ExtensionFileFilter;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -22,5 +23,6 @@
             OdConstants.CSV_EXT, OdConstants.CSV_EXT, tr("CSV files") + " (*."+OdConstants.CSV_EXT+")");
 
-    public static final String COLOMBUS_HEADER = "INDEX,TAG,DATE,TIME,LATITUDE N/S,LONGITUDE E/W,HEIGHT,SPEED,HEADING,FIX MODE,VALID,PDOP,HDOP,VDOP,VOX";
+    public static final String COLOMBUS_HEADER =
+            "INDEX,TAG,DATE,TIME,LATITUDE N/S,LONGITUDE E/W,HEIGHT,SPEED,HEADING,FIX MODE,VALID,PDOP,HDOP,VDOP,VOX";
 
     public CsvImporter() {
@@ -50,5 +52,5 @@
                 result = line != null && line.equalsIgnoreCase(COLOMBUS_HEADER);
             } catch (IOException e) {
-                // Ignore exceptions
+                Main.trace(e);
             }
         }
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 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/CsvReader.java	(revision 32545)
@@ -19,5 +19,5 @@
     private final Charset charset;
     private String sep;
-    
+
     private BufferedReader reader;
     private String line;
@@ -32,5 +32,5 @@
         this.sep = handler != null && handler.getSeparator() != null ? handler.getSeparator() : defaultSep;
     }
-    
+
     public static DataSet parseDataSet(InputStream in, AbstractDataSetHandler handler, ProgressMonitor instance) throws IOException {
         CsvHandler csvHandler = null;
@@ -65,6 +65,6 @@
         return splitLine();
     }
-    
-    private final String[] splitLine() {
+
+    private String[] splitLine() {
         if (line != null) {
             return OdUtils.stripQuotesAndExtraChars(line.split(sep), sep);
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetHandler.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetHandler.java	(revision 32545)
@@ -12,26 +12,26 @@
 public interface SpreadSheetHandler {
 
-    public void setSheetNumber(int n);
-    
-    public int getSheetNumber();
+    void setSheetNumber(int n);
 
-    public void setHandlesProjection(boolean handle);
-    
-    public boolean handlesProjection();
+    int getSheetNumber();
 
-    public LatLon getCoor(EastNorth en, String[] fields);
+    void setHandlesProjection(boolean handle);
 
-    public void setLineNumber(int n);
-    
-    public int getLineNumber();
+    boolean handlesProjection();
 
-    public void setXCol(int i);
+    LatLon getCoor(EastNorth en, String[] fields);
 
-    public void setYCol(int i);
-    
-    public int getXCol();
+    void setLineNumber(int n);
 
-    public int getYCol();
+    int getLineNumber();
 
-    public void nodesAdded(DataSet ds, Map<CoordinateColumns, Node> nodes, String[] fields, int lineNumber);
+    void setXCol(int i);
+
+    void setYCol(int i);
+
+    int getXCol();
+
+    int getYCol();
+
+    void nodesAdded(DataSet ds, Map<CoordinateColumns, Node> nodes, String[] fields, int lineNumber);
 }
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 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetReader.java	(revision 32545)
@@ -28,8 +28,8 @@
 
 public abstract class SpreadSheetReader extends AbstractReader {
-    
+
     private static final NumberFormat formatFrance = NumberFormat.getInstance(Locale.FRANCE);
     private static final NumberFormat formatUK = NumberFormat.getInstance(Locale.UK);
-    
+
     protected final SpreadSheetHandler handler;
 
@@ -39,5 +39,5 @@
 
     protected static double parseDouble(String value) throws ParseException {
-        if (value.contains(",")) { 
+        if (value.contains(",")) {
             return formatFrance.parse(value.replace(" ", "")).doubleValue();
         } else {
@@ -45,17 +45,17 @@
         }
     }
-    
+
     protected abstract void initResources(InputStream in, ProgressMonitor progressMonitor) throws IOException;
-    
+
     protected abstract String[] readLine(ProgressMonitor progressMonitor) throws IOException;
-    
+
     protected final int getSheetNumber() {
         return handler != null && handler.getSheetNumber() > -1 ? handler.getSheetNumber() : 0;
     }
-    
+
     protected final int getLineNumber() {
         return handler != null ? handler.getLineNumber() : -1;
     }
-    
+
     public static class CoordinateColumns {
         public Projection proj = null;
@@ -65,4 +65,5 @@
             return xCol > -1 && yCol > -1;
         }
+
         @Override
         public String toString() {
@@ -70,6 +71,6 @@
         }
     }
-    
-    private final CoordinateColumns addCoorColIfNeeded(List<CoordinateColumns> columns, CoordinateColumns col) {
+
+    private CoordinateColumns addCoorColIfNeeded(List<CoordinateColumns> columns, CoordinateColumns col) {
         if (col == null || col.isOk()) {
             columns.add(col = new CoordinateColumns());
@@ -77,11 +78,11 @@
         return col;
     }
-    
+
     public DataSet doParse(String[] header, ProgressMonitor progressMonitor) throws IOException {
         Main.info("Header: "+Arrays.toString(header));
-        
+
         Map<ProjectionPatterns, List<CoordinateColumns>> projColumns = new HashMap<>();
-        
-        for (int i = 0; i<header.length; i++) {
+
+        for (int i = 0; i < header.length; i++) {
             for (ProjectionPatterns pp : OdConstants.PROJECTIONS) {
                 List<CoordinateColumns> columns = projColumns.get(pp);
@@ -101,5 +102,5 @@
 
         final List<CoordinateColumns> columns = new ArrayList<>();
-        
+
         for (ProjectionPatterns pp : projColumns.keySet()) {
             for (CoordinateColumns col : projColumns.get(pp)) {
@@ -116,5 +117,5 @@
 
         boolean projFound = false;
-        
+
         for (CoordinateColumns c : columns) {
             if (c.proj != null) {
@@ -123,5 +124,5 @@
             }
         }
-        
+
         if (projFound) {
             // projection identified, do nothing
@@ -140,5 +141,5 @@
                 }
             }
-            
+
         } else {
             throw new IllegalArgumentException(tr("No valid coordinates have been found."));
@@ -152,10 +153,10 @@
             message += c.proj + "("+header[c.xCol]+", "+header[c.yCol]+")";
         }
-        
+
         Main.info("Loading data using projections "+message);
-        
+
         final DataSet ds = new DataSet();
         int lineNumber = 1;
-        
+
         String[] fields;
         while ((fields = readLine(progressMonitor)) != null) {
@@ -165,5 +166,5 @@
                 handler.setYCol(-1);
             }
-            
+
             final Map<CoordinateColumns, EastNorth> ens = new HashMap<>();
             final Map<CoordinateColumns, Node> nodes = new HashMap<>();
@@ -172,11 +173,11 @@
                 ens.put(c, new EastNorth(Double.NaN, Double.NaN));
             }
-            
+
             if (fields.length > header.length) {
                 Main.warn(tr("Invalid file. Bad length on line {0}. Expected {1} columns, got {2}.", lineNumber, header.length, fields.length));
                 Main.warn(Arrays.toString(fields));
             }
-            
-            for (int i = 0; i<Math.min(fields.length, header.length); i++) {
+
+            for (int i = 0; i < Math.min(fields.length, header.length); i++) {
                 try {
                     boolean coordinate = false;
@@ -195,5 +196,5 @@
                                 handler.setYCol(i);
                             }
-                        }                            
+                        }
                     }
                     if (!coordinate) {
@@ -219,5 +220,6 @@
                         firstNode = n;
                     }
-                    if (n == firstNode || n.getCoor().greatCircleDistance(firstNode.getCoor()) > Main.pref.getDouble(OdConstants.PREF_TOLERANCE, OdConstants.DEFAULT_TOLERANCE)) {
+                    if (n == firstNode || n.getCoor().greatCircleDistance(firstNode.getCoor())
+                            > Main.pref.getDouble(OdConstants.PREF_TOLERANCE, OdConstants.DEFAULT_TOLERANCE)) {
                         ds.addPrimitive(n);
                     } else {
@@ -230,16 +232,16 @@
             }
         }
-        
+
         return ds;
     }
-    
+
     public final DataSet parse(InputStream in, ProgressMonitor progressMonitor) throws IOException {
-        
+
         initResources(in, progressMonitor);
-        
+
         String[] header = null;
         int length = 0;
         int n = 0;
-        
+
         while (header == null || length == 0) {
             n++;
@@ -254,5 +256,5 @@
             }
         }
-        
+
         return doParse(header, progressMonitor);
     }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdDataLayer.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdDataLayer.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdDataLayer.java	(revision 32545)
@@ -36,9 +36,9 @@
     public OdDiffLayer diffLayer;
     public OdOsmDataLayer osmLayer;
-    
+
     public final AbstractDataSetHandler handler;
-    
+
     private Bounds bounds;
-    
+
     public OdDataLayer(DataSet data, String name, File associatedFile, AbstractDataSetHandler handler) {
         super(data, name, associatedFile);
@@ -57,5 +57,5 @@
         Main.getLayerManager().addLayerChangeListener(this);
     }
-    
+
     @Override public ImageProvider getBaseIconProvider() {
         return OdUtils.getImageProvider(handler != null ? handler.getDataLayerIconName() : OdConstants.ICON_CORE_16);
@@ -74,5 +74,5 @@
         }
     }
-    
+
     public void addDiffLayer(OdDiffLayer layer) {
         removeDiffLayer();
@@ -80,5 +80,5 @@
         Main.getLayerManager().addLayer(diffLayer);
     }
-    
+
     public void removeDiffLayer() {
         if (diffLayer != null) {
@@ -87,5 +87,5 @@
         }
     }
-    
+
     public final void downloadOsmData() {
         String oapiReq = handler.getOverpassApiRequest(bounds);
@@ -140,17 +140,17 @@
         }
         if (this.handler != null) {
-            if (this.handler.getWikiURL() != null || this.handler.getLocalPortalURL() != null || this.handler.getNationalPortalURL() != null) { 
+            if (this.handler.getWikiURL() != null || this.handler.getLocalPortalURL() != null || this.handler.getNationalPortalURL() != null) {
                 result.add(SeparatorLayerAction.INSTANCE);
             }
-            if (this.handler.getWikiURL() != null) { 
-                result.add(new OpenLinkAction(this.handler.getWikiURL(), OdConstants.ICON_OSM_24, 
+            if (this.handler.getWikiURL() != null) {
+                result.add(new OpenLinkAction(this.handler.getWikiURL(), OdConstants.ICON_OSM_24,
                         tr("View OSM Wiki page"), tr("Launch browser to the OSM Wiki page of the selected data set")));
             }
-            if (this.handler.getLocalPortalURL() != null) { 
-                result.add(new OpenLinkAction(this.handler.getLocalPortalURL(), this.handler.getLocalPortalIconName(), 
+            if (this.handler.getLocalPortalURL() != null) {
+                result.add(new OpenLinkAction(this.handler.getLocalPortalURL(), this.handler.getLocalPortalIconName(),
                         tr("View Local Portal page"), tr("Launch browser to the local portal page of the selected data set")));
             }
-            if (this.handler.getNationalPortalURL() != null) { 
-                result.add(new OpenLinkAction(this.handler.getNationalPortalURL(), this.handler.getNationalPortalIconName(), 
+            if (this.handler.getNationalPortalURL() != null) {
+                result.add(new OpenLinkAction(this.handler.getNationalPortalURL(), this.handler.getNationalPortalIconName(),
                         tr("View National Portal page"), tr("Launch browser to the national portal page of the selected data set")));
             }
@@ -158,12 +158,13 @@
                 License lic = this.handler.getLicense();
                 if (lic.getURL() != null && lic.getURL().getProtocol().startsWith("http")) {
-                    result.add(new OpenLinkAction(lic.getURL(), OdConstants.ICON_AGREEMENT_24, 
+                    result.add(new OpenLinkAction(lic.getURL(), OdConstants.ICON_AGREEMENT_24,
                             tr("View License"), tr("Launch browser to the license page of the selected data set")));
                 }
                 if (lic.getSummaryURL() != null && lic.getSummaryURL().getProtocol().startsWith("http")) {
-                    result.add(new OpenLinkAction(lic.getSummaryURL(), OdConstants.ICON_AGREEMENT_24, 
+                    result.add(new OpenLinkAction(lic.getSummaryURL(), OdConstants.ICON_AGREEMENT_24,
                             tr("View License (summary)"), tr("Launch browser to the summary license page of the selected data set")));
                 }
-                if ((lic.getURL() != null && !lic.getURL().getProtocol().startsWith("http")) || (lic.getSummaryURL() != null && !lic.getSummaryURL().getProtocol().startsWith("http"))) {
+                if ((lic.getURL() != null && !lic.getURL().getProtocol().startsWith("http")) ||
+                        (lic.getSummaryURL() != null && !lic.getSummaryURL().getProtocol().startsWith("http"))) {
                     result.add(new ViewLicenseAction(lic, tr("View License"), tr("View the license of the selected data set")));
                 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdDiffLayer.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdDiffLayer.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdDiffLayer.java	(revision 32545)
@@ -23,9 +23,9 @@
 
     private final OdDataLayer dataLayer;
-    
-    public final List<Pair<OsmPrimitive,OsmPrimitive>> differentPrimitives;
+
+    public final List<Pair<OsmPrimitive, OsmPrimitive>> differentPrimitives;
     public final List<OsmPrimitive> onlyInTlsPrimitives;
     public final List<OsmPrimitive> onlyInOsmPrimitives;
-    
+
     public OdDiffLayer(OdDataLayer dataLayer, String name) {
         super(name);
@@ -36,5 +36,5 @@
         initDiff(dataLayer.data, dataLayer.osmLayer.data);
     }
-    
+
     private void initDiff(DataSet tlsData, DataSet osmData) {
         for (OsmPrimitive p1 : tlsData.allPrimitives()) {
@@ -56,9 +56,9 @@
         }
     }
-    
+
     private double distance(OsmPrimitive p1, OsmPrimitive p2) {
         return p1.getBBox().getCenter().greatCircleDistance(p2.getBBox().getCenter());
     }
-    
+
     private OsmPrimitive findPrimitiveAt(DataSet dataSet, OsmPrimitive source) {
         double maxDistance = Main.pref.getDouble(OdConstants.PREF_MAXDISTANCE, OdConstants.DEFAULT_MAXDISTANCE);
@@ -69,5 +69,5 @@
         for (OsmPrimitive p : dataSet.allPrimitives()) {
             if (dataLayer.handler.isRelevant(p)) {
-                double dist = distance(source, p); 
+                double dist = distance(source, p);
                 if (dist <= maxDistance) {
                     if (dataLayer.handler.equals(p, source)) {
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdLayer.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdLayer.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdLayer.java	(revision 32545)
@@ -3,4 +3,4 @@
 
 public interface OdLayer {
-    public OdDataLayer getDataLayer();
+    OdDataLayer getDataLayer();
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/licenses/License.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/licenses/License.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/licenses/License.java	(revision 32545)
@@ -13,14 +13,14 @@
 
 public abstract class License {
-    
+
     public static final ODbL ODbL = new ODbL();
     public static final LOOL LOOL = new LOOL();
-    
+
     private final Map<String, URL> urls = new HashMap<>();
     private final Map<String, URL> summaryURLs = new HashMap<>();
-    
+
     private Icon icon;
-    
-    private static final URL getURL(Map<String, URL> map) {
+
+    private static URL getURL(Map<String, URL> map) {
         // Find URL for current language
         String lang = OdUtils.getJosmLanguage();
@@ -37,5 +37,5 @@
         // If not found, return first non-null url
         if (map.keySet().size() > 0) {
-            for (Iterator<String> it=map.keySet().iterator(); it.hasNext(); ) {
+            for (Iterator<String> it = map.keySet().iterator(); it.hasNext();) {
                 url = map.get(it.next());
                 if (url != null) {
@@ -55,5 +55,5 @@
         return getURL(summaryURLs);
     }
-    
+
     public final void setURL(URL url) {
         setURL(url, "en");
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 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/AbstractModule.java	(revision 32545)
@@ -115,5 +115,5 @@
     }
 
-    private final List<AbstractDataSetHandler> getInstanciatedHandlers() {
+    private List<AbstractDataSetHandler> getInstanciatedHandlers() {
         if (instanciatedHandlers.isEmpty()) {
             instanciatedHandlers.addAll(getNewlyInstanciatedHandlers());
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/Module.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/Module.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/Module.java	(revision 32545)
@@ -9,14 +9,14 @@
 public interface Module {
 
-    public String getDisplayedName();
+    String getDisplayedName();
 
-    public List<Class<? extends AbstractDataSetHandler>> getHandlers();
+    List<Class<? extends AbstractDataSetHandler>> getHandlers();
 
-    public List<AbstractDataSetHandler> getNewlyInstanciatedHandlers();
+    List<AbstractDataSetHandler> getNewlyInstanciatedHandlers();
 
-    public SourceProvider getMapPaintStyleSourceProvider();
-    
-    public SourceProvider getPresetSourceProvider();
-    
-    public ModuleInformation getModuleInformation();
+    SourceProvider getMapPaintStyleSourceProvider();
+
+    SourceProvider getPresetSourceProvider();
+
+    ModuleInformation getModuleInformation();
 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleDownloadTask.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleDownloadTask.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleDownloadTask.java	(revision 32545)
@@ -32,5 +32,5 @@
  *
  */
-public class ModuleDownloadTask extends PleaseWaitRunnable{
+public class ModuleDownloadTask extends PleaseWaitRunnable {
     private final Collection<ModuleInformation> toUpdate = new LinkedList<>();
     private final Collection<ModuleInformation> failed = new LinkedList<>();
@@ -48,5 +48,5 @@
      * @throws IllegalArgumentException thrown if toUpdate is null
      */
-    public ModuleDownloadTask(Component parent, Collection<ModuleInformation> toUpdate, String title) throws IllegalArgumentException{
+    public ModuleDownloadTask(Component parent, Collection<ModuleInformation> toUpdate, String title) throws IllegalArgumentException {
         super(parent, title == null ? "" : title, false /* don't ignore exceptions */);
         CheckParameterUtil.ensureParameterNotNull(toUpdate, "toUpdate");
@@ -63,5 +63,5 @@
      */
     public ModuleDownloadTask(ProgressMonitor monitor, Collection<ModuleInformation> toUpdate, String title) {
-        super(title, monitor == null? NullProgressMonitor.INSTANCE: monitor, false /* don't ignore exceptions */);
+        super(title, monitor == null ? NullProgressMonitor.INSTANCE : monitor, false /* don't ignore exceptions */);
         CheckParameterUtil.ensureParameterNotNull(toUpdate, "toUpdate");
         this.toUpdate.addAll(toUpdate);
@@ -74,5 +74,5 @@
      * @throws IllegalArgumentException thrown if toUpdate is null
      */
-    public void setModulesToDownload(Collection<ModuleInformation> toUpdate) throws IllegalArgumentException{
+    public void setModulesToDownload(Collection<ModuleInformation> toUpdate) throws IllegalArgumentException {
         CheckParameterUtil.ensureParameterNotNull(toUpdate, "toUpdate");
         this.toUpdate.clear();
@@ -82,5 +82,5 @@
     @Override protected void cancel() {
         this.canceled = true;
-        synchronized(this) {
+        synchronized (this) {
             if (downloadConnection != null) {
                 downloadConnection.disconnect();
@@ -91,5 +91,5 @@
     @Override protected void finish() {}
 
-    protected void download(ModuleInformation pi, File file) throws ModuleDownloadException{
+    protected void download(ModuleInformation pi, File file) throws ModuleDownloadException {
         try {
             if (pi.downloadlink == null) {
@@ -99,15 +99,15 @@
             }
             URL url = new URL(pi.downloadlink);
-            synchronized(this) {
-                downloadConnection = (HttpURLConnection)url.openConnection();
+            synchronized (this) {
+                downloadConnection = (HttpURLConnection) url.openConnection();
                 downloadConnection.setRequestProperty("Cache-Control", "no-cache");
-                downloadConnection.setRequestProperty("User-Agent",Version.getInstance().getAgentString());
+                downloadConnection.setRequestProperty("User-Agent", Version.getInstance().getAgentString());
                 downloadConnection.setRequestProperty("Host", url.getHost());
                 downloadConnection.connect();
             }
             try (
-                InputStream in = downloadConnection.getInputStream();
-                OutputStream out = new FileOutputStream(file)
-            ) {
+                    InputStream in = downloadConnection.getInputStream();
+                    OutputStream out = new FileOutputStream(file)
+                    ) {
                 byte[] buffer = new byte[8192];
                 for (int read = in.read(buffer); read != -1; read = in.read(buffer)) {
@@ -115,6 +115,7 @@
                 }
             }
-        } catch(MalformedURLException e) {
-            String msg = tr("Warning: Cannot download module ''{0}''. Its download link ''{1}'' is not a valid URL. Skipping download.", pi.name, pi.downloadlink);
+        } catch (MalformedURLException e) {
+            String msg = tr("Warning: Cannot download module ''{0}''. Its download link ''{1}'' is not a valid URL. Skipping download.",
+                    pi.name, pi.downloadlink);
             Main.warn(msg);
             throw new ModuleDownloadException(msg);
@@ -124,5 +125,5 @@
             throw new ModuleDownloadException(e);
         } finally {
-            synchronized(this) {
+            synchronized (this) {
                 downloadConnection = null;
             }
@@ -147,5 +148,5 @@
             try {
                 download(d, moduleFile);
-            } catch(ModuleDownloadException e) {
+            } catch (ModuleDownloadException e) {
                 e.printStackTrace();
                 failed.add(d);
@@ -160,5 +161,5 @@
      * Replies true if the task was canceled by the user
      *
-     * @return
+     * @return {@code true} if the task was canceled by the user
      */
     public boolean isCanceled() {
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleHandler.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleHandler.java	(revision 32545)
@@ -56,10 +56,10 @@
  *
  */
-public class ModuleHandler {
+public final class ModuleHandler {
 
     /**
      * All installed and loaded modules (resp. their main classes)
      */
-    public final static Collection<Module> moduleList = new LinkedList<>();
+    public static final Collection<Module> moduleList = new LinkedList<>();
 
     /**
@@ -77,4 +77,8 @@
     }
 
+    private ModuleHandler() {
+        // Hide default constructor for utilities classes
+    }
+
     public static Collection<ClassLoader> getResourceClassLoaders() {
         return Collections.unmodifiableCollection(sources);
@@ -97,17 +101,17 @@
         long last = Main.pref.getLong("opendata.modulemanager.lastupdate", 0);
         Integer maxTime = Main.pref.getInteger("opendata.modulemanager.time-based-update.interval", 60);
-        long d = (tim - last) / (24 * 60 * 60 * 1000l);
+        long d = (tim - last) / (24 * 60 * 60 * 1000L);
         if ((last <= 0) || (maxTime <= 0)) {
             Main.pref.put("opendata.modulemanager.lastupdate", Long.toString(tim));
         } else if (d > maxTime) {
             message =
-                "<html>"
-                + tr("Last module update more than {0} days ago.", d)
-                + "</html>";
+                    "<html>"
+                            + tr("Last module update more than {0} days ago.", d)
+                            + "</html>";
             togglePreferenceKey = "opendata.modulemanager.time-based-update.policy";
         }
         if (message == null) return false;
 
-        ButtonSpec [] options = new ButtonSpec[] {
+        ButtonSpec[] options = new ButtonSpec[] {
                 new ButtonSpec(
                         tr("Update modules"),
@@ -115,5 +119,5 @@
                         tr("Click to update the activated modules"),
                         null /* no specific help context */
-                ),
+                        ),
                 new ButtonSpec(
                         tr("Skip update"),
@@ -121,5 +125,5 @@
                         tr("Click to skip updating the activated modules"),
                         null /* no specific help context */
-                )
+                        )
         };
 
@@ -158,5 +162,5 @@
                 options[0],
                 null
-        );
+                );
 
         if (pnlMessage.isRememberDecision()) {
@@ -247,5 +251,5 @@
                         + "Delete from preferences?</html>", module.name, module.className);
             }
-        }  catch (Exception e) {
+        } catch (Exception e) {
             Main.error(e);
         }
@@ -309,5 +313,5 @@
             try {
                 future.get();
-            } catch(ExecutionException | InterruptedException e) {
+            } catch (ExecutionException | InterruptedException e) {
                 Main.error(e);
                 return null;
@@ -344,5 +348,5 @@
                 JOptionPane.WARNING_MESSAGE,
                 HelpUtil.ht("/Module/Loading#MissingModuleInfos")
-        );
+                );
     }
 
@@ -356,5 +360,5 @@
     public static List<ModuleInformation> buildListOfModulesToLoad(Component parent) {
         Set<String> modules = new HashSet<>();
-        modules.addAll(Main.pref.getCollection(OdConstants.PREF_MODULES,  new LinkedList<String>()));
+        modules.addAll(Main.pref.getCollection(OdConstants.PREF_MODULES, new LinkedList<String>()));
         if (System.getProperty("josm."+OdConstants.PREF_MODULES) != null) {
             modules.addAll(Arrays.asList(System.getProperty("josm."+OdConstants.PREF_MODULES).split(",")));
@@ -382,6 +386,6 @@
                 "Updating the following modules has failed:",
                 modules.size()
-        )
-        );
+                )
+                );
         sb.append("<ul>");
         for (ModuleInformation pi: modules) {
@@ -393,5 +397,5 @@
                 "Please open the Preference Dialog after JOSM has started and try to update them manually.",
                 modules.size()
-        ));
+                ));
         sb.append("</html>");
         HelpAwareOptionPane.showOptionDialog(
@@ -401,5 +405,5 @@
                 JOptionPane.ERROR_MESSAGE,
                 HelpUtil.ht("/Module/Loading#FailedModuleUpdated")
-        );
+                );
     }
 
@@ -412,7 +416,7 @@
      * @throws IllegalArgumentException thrown if modules is null
      */
-    public static List<ModuleInformation>  updateModules(Component parent,
+    public static List<ModuleInformation> updateModules(Component parent,
             List<ModuleInformation> modules, ProgressMonitor monitor)
-            throws IllegalArgumentException{
+                    throws IllegalArgumentException {
         CheckParameterUtil.ensureParameterNotNull(modules, "modules");
         if (monitor == null) {
@@ -426,16 +430,16 @@
             //
             ReadRemoteModuleInformationTask task1 = new ReadRemoteModuleInformationTask(
-                    monitor.createSubTaskMonitor(1,false),
+                    monitor.createSubTaskMonitor(1, false),
                     OdPreferenceSetting.getModuleSites()
-            );
+                    );
             Future<?> future = service.submit(task1);
             try {
                 future.get();
                 modules = buildListOfModulesToLoad(parent);
-            } catch(ExecutionException e) {
+            } catch (ExecutionException e) {
                 Main.warn(tr("Warning: failed to download module information list"));
                 e.printStackTrace();
                 // don't abort in case of error, continue with downloading modules below
-            } catch(InterruptedException e) {
+            } catch (InterruptedException e) {
                 Main.warn(tr("Warning: failed to download module information list"));
                 e.printStackTrace();
@@ -446,5 +450,5 @@
             //
             Collection<ModuleInformation> modulesToUpdate = new ArrayList<>();
-            for(ModuleInformation pi: modules) {
+            for (ModuleInformation pi: modules) {
                 if (pi.isUpdateRequired()) {
                     modulesToUpdate.add(pi);
@@ -456,17 +460,17 @@
                 //
                 ModuleDownloadTask task2 = new ModuleDownloadTask(
-                        monitor.createSubTaskMonitor(1,false),
+                        monitor.createSubTaskMonitor(1, false),
                         modulesToUpdate,
                         tr("Update modules")
-                );
+                        );
 
                 future = service.submit(task2);
                 try {
                     future.get();
-                } catch(ExecutionException e) {
+                } catch (ExecutionException e) {
                     e.printStackTrace();
                     alertFailedModuleUpdate(parent, modulesToUpdate);
                     return modules;
-                } catch(InterruptedException e) {
+                } catch (InterruptedException e) {
                     e.printStackTrace();
                     alertFailedModuleUpdate(parent, modulesToUpdate);
@@ -475,5 +479,5 @@
                 // notify user if downloading a locally installed module failed
                 //
-                if (! task2.getFailedModules().isEmpty()) {
+                if (!task2.getFailedModules().isEmpty()) {
                     alertFailedModuleUpdate(parent, task2.getFailedModules());
                     return modules;
@@ -497,5 +501,5 @@
      */
     public static boolean confirmDisableModule(Component parent, String reason, String name) {
-        ButtonSpec [] options = new ButtonSpec[] {
+        ButtonSpec[] options = new ButtonSpec[] {
                 new ButtonSpec(
                         tr("Disable module"),
@@ -503,5 +507,5 @@
                         tr("Click to delete the module ''{0}''", name),
                         null /* no specific help context */
-                ),
+                        ),
                 new ButtonSpec(
                         tr("Keep module"),
@@ -509,5 +513,5 @@
                         tr("Click to keep the module ''{0}''", name),
                         null /* no specific help context */
-                )
+                        )
         };
         int ret = HelpAwareOptionPane.showOptionDialog(
@@ -520,5 +524,5 @@
                 options[0],
                 null // FIXME: add help topic
-        );
+                );
         return ret == 0;
     }
@@ -543,5 +547,5 @@
     public static void installDownloadedModules(boolean dowarn) {
         File moduleDir = OdPlugin.getInstance().getModulesDirectory();
-        if (! moduleDir.exists() || ! moduleDir.isDirectory() || ! moduleDir.canWrite())
+        if (!moduleDir.exists() || !moduleDir.isDirectory() || !moduleDir.canWrite())
             return;
 
@@ -550,5 +554,5 @@
             public boolean accept(File dir, String name) {
                 return name.endsWith(".jar.new");
-            }});
+            } });
 
         for (File updatedModule : files) {
@@ -556,4 +560,5 @@
             File module = new File(filePath.substring(0, filePath.length() - 4));
             String moduleName = updatedModule.getName().substring(0, updatedModule.getName().length() - 8);
+            // CHECKSTYLE.OFF: LineLength
             if (module.exists()) {
                 if (!module.delete() && dowarn) {
@@ -567,4 +572,5 @@
                 Main.warn(tr("Warning: failed to install already downloaded module ''{0}''. Skipping installation. JOSM is still going to load the old module version.", moduleName));
             }
+            // CHECKSTYLE.ON: LineLength
         }
         return;
@@ -736,5 +742,5 @@
     }*/
 
-    static private class UpdateModulesMessagePanel extends JPanel {
+    private static class UpdateModulesMessagePanel extends JPanel {
         private JMultilineLabel lblMessage;
         private JCheckBox cbDontShowAgain;
@@ -747,5 +753,5 @@
             gc.weightx = 1.0;
             gc.weighty = 1.0;
-            gc.insets = new Insets(5,5,5,5);
+            gc.insets = new Insets(5, 5, 5, 5);
             add(lblMessage = new JMultilineLabel(""), gc);
             lblMessage.setFont(lblMessage.getFont().deriveFont(Font.PLAIN));
@@ -754,9 +760,10 @@
             gc.fill = GridBagConstraints.HORIZONTAL;
             gc.weighty = 0.0;
-            add(cbDontShowAgain = new JCheckBox(tr("Do not ask again and remember my decision (go to Preferences->Modules to change it later)")), gc);
+            add(cbDontShowAgain = new JCheckBox(
+                    tr("Do not ask again and remember my decision (go to Preferences->Modules to change it later)")), gc);
             cbDontShowAgain.setFont(cbDontShowAgain.getFont().deriveFont(Font.PLAIN));
         }
 
-        public UpdateModulesMessagePanel() {
+        UpdateModulesMessagePanel() {
             build();
         }
@@ -769,5 +776,5 @@
             String policy = Main.pref.get(preferencesKey, "ask");
             policy = policy.trim().toLowerCase();
-            cbDontShowAgain.setSelected(! policy.equals("ask"));
+            cbDontShowAgain.setSelected(!policy.equals("ask"));
         }
 
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleInformation.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleInformation.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleInformation.java	(revision 32545)
@@ -72,5 +72,5 @@
      * @throws ModuleException thrown if reading the manifest file fails
      */
-    public ModuleInformation(File file, String name) throws ModuleException{
+    public ModuleInformation(File file, String name) throws ModuleException {
         this.name = name;
         this.file = file;
@@ -103,5 +103,5 @@
             Manifest manifest = new Manifest();
             manifest.read(manifestStream);
-            if(url != null) {
+            if (url != null) {
                 downloadlink = url;
             }
@@ -133,6 +133,7 @@
     }
 
-    private static final ImageIcon extractIcon(String iconPath, File jarFile, boolean suppressWarnings) {
-        return new ImageProvider(iconPath).setArchive(jarFile).setMaxWidth(24).setMaxHeight(24).setOptional(true).setSuppressWarnings(suppressWarnings).get();
+    private static ImageIcon extractIcon(String iconPath, File jarFile, boolean suppressWarnings) {
+        return new ImageProvider(iconPath).setArchive(jarFile).setMaxWidth(24).setMaxHeight(24).setOptional(true)
+                .setSuppressWarnings(suppressWarnings).get();
     }
 
@@ -156,7 +157,7 @@
         link = s;
         s = attr.getValue(lang+"Module-Description");
-        if(s == null) {
+        if (s == null) {
             s = attr.getValue("Module-Description");
-            if(s != null) {
+            if (s != null) {
                 s = tr(s);
             }
@@ -240,5 +241,5 @@
         if (className == null)
             return null;
-        try{
+        try {
             return (Class<? extends Module>) Class.forName(className, true, classLoader);
         } catch (Exception t) {
@@ -276,5 +277,5 @@
     public boolean isUpdateRequired(String referenceVersion) {
         if (this.downloadlink == null) return false;
-        if (this.version == null && referenceVersion!= null)
+        if (this.version == null && referenceVersion != null)
             return true;
         if (this.version != null && !this.version.equals(referenceVersion))
@@ -311,5 +312,5 @@
     public boolean matches(String filter) {
         if (filter == null) return true;
-        String words[] = filter.split("\\s+");
+        String[] words = filter.split("\\s+");
         for (String word: words) {
             if (matches(word, name)
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleListParser.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleListParser.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleListParser.java	(revision 32545)
@@ -16,5 +16,5 @@
  * A parser for the module list provided by an opendata Module Download Site.
  *
- * See <a href="http://svn.openstreetmap.org/applications/editors/josm/plugins/opendata/modules.txt">http://svn.openstreetmap.org/applications/editors/josm/plugins/opendata/modules.txt</a>
+ * See <a href="http://svn.openstreetmap.org/applications/editors/josm/plugins/opendata/modules.txt">OSM SVN</a>
  * for a sample of the document. The format is a custom format, kind of mix of CSV and RFC822 style
  * name/value-pairs.
@@ -30,7 +30,7 @@
      * @param manifest the module manifest
      * @return a module information object
-     * @throws ModuleListParseException
+     * @throws ModuleListParseException if the list cannot be parsed
      */
-    protected ModuleInformation createInfo(String name, String url, String manifest) throws ModuleListParseException{
+    protected ModuleInformation createInfo(String name, String url, String manifest) throws ModuleListParseException {
         try {
             return new ModuleInformation(
@@ -38,6 +38,6 @@
                     name.substring(0, name.length() - 4),
                     url
-            );
-        } catch(UnsupportedEncodingException e) {
+                    );
+        } catch (UnsupportedEncodingException e) {
             throw new ModuleListParseException(tr("Failed to create module information from manifest for module ''{0}''", name), e);
         } catch (ModuleException e) {
@@ -49,5 +49,5 @@
      * Parses a module information document and replies a list of module information objects.
      *
-     * See <a href="http://svn.openstreetmap.org/applications/editors/josm/plugins/opendata/modules.txt">http://svn.openstreetmap.org/applications/editors/josm/plugins/opendata/modules.txt</a>
+     * See <a href="http://svn.openstreetmap.org/applications/editors/josm/plugins/opendata/modules.txt">OSM SVN</a>
      * for a sample of the document. The format is a custom format, kind of mix of CSV and RFC822 style
      * name/value-pairs.
@@ -57,5 +57,5 @@
      * @throws ModuleListParseException thrown if something goes wrong while parsing
      */
-    public List<ModuleInformation> parse(InputStream in) throws ModuleListParseException{
+    public List<ModuleInformation> parse(InputStream in) throws ModuleListParseException {
         List<ModuleInformation> ret = new LinkedList<>();
         BufferedReader r = null;
@@ -73,5 +73,5 @@
                 }
                 B;
-            */
+             */
             for (String line = r.readLine(); line != null; line = r.readLine()) {
                 if (line.startsWith("\t")) {
@@ -95,7 +95,7 @@
                     }
                 }
-                String x[] = line.split(";");
-                if(x.length != 2)
-                  throw new IOException(tr("Illegal entry in module list."));
+                String[] x = line.split(";");
+                if (x.length != 2)
+                    throw new IOException(tr("Illegal entry in module list."));
                 name = x[0];
                 url = x[1];
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ReadLocalModuleInformationTask.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ReadLocalModuleInformationTask.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ReadLocalModuleInformationTask.java	(revision 32545)
@@ -31,7 +31,6 @@
  *   <li>.jar.new-files, assuming that these are downloaded but not yet installed modules</li>
  *   <li>cached lists of available modules, downloaded for instance from
- *   <a href="http://svn.openstreetmap.org/applications/editors/josm/plugins/opendata/modules.txt">http://svn.openstreetmap.org/applications/editors/josm/plugins/opendata/modules.txt</a></li>
+ *   <a href="http://svn.openstreetmap.org/applications/editors/josm/plugins/opendata/modules.txt">OSM SVN</a></li>
  * </ul>
- *
  */
 public class ReadLocalModuleInformationTask extends PleaseWaitRunnable {
@@ -45,5 +44,5 @@
 
     public ReadLocalModuleInformationTask(ProgressMonitor monitor) {
-        super(tr("Reading local module information.."),monitor, false);
+        super(tr("Reading local module information.."), monitor, false);
         availableModules = new HashMap<>();
     }
@@ -57,9 +56,9 @@
     protected void finish() {}
 
-    protected void processJarFile(File f, String moduleName) throws ModuleException{
+    protected void processJarFile(File f, String moduleName) throws ModuleException {
         ModuleInformation info = new ModuleInformation(
                 f,
                 moduleName
-        );
+                );
         if (!availableModules.containsKey(info.getName())) {
             info.localversion = info.version;
@@ -84,5 +83,5 @@
                     }
                 }
-        );
+                );
         if (siteCacheFiles == null || siteCacheFiles.length == 0)
             return;
@@ -110,5 +109,5 @@
                     }
                 }
-        );
+                );
         if (siteCacheFiles == null || siteCacheFiles.length == 0)
             return;
@@ -121,8 +120,8 @@
                 if (pi.icon == null && pi.iconPath != null) {
                     pi.icon = new ImageProvider(pi.name+".jar/"+pi.iconPath)
-                                    .setArchive(f)
-                                    .setMaxWidth(24)
-                                    .setMaxHeight(24)
-                                    .setOptional(true).get();
+                            .setArchive(f)
+                            .setMaxWidth(24)
+                            .setMaxHeight(24)
+                            .setOptional(true).get();
                 }
             }
@@ -139,5 +138,5 @@
                     }
                 }
-        );
+                );
         if (moduleFiles == null || moduleFiles.length == 0)
             return;
@@ -155,5 +154,5 @@
                     processJarFile(f, moduleName);
                 }
-            } catch(ModuleException e){
+            } catch (ModuleException e) {
                 Main.warn(tr("Warning: Failed to scan file ''{0}'' for module information. Skipping.", fname));
                 e.printStackTrace();
@@ -176,5 +175,5 @@
     }
 
-    protected void processLocalModuleInformationFile(File file) throws ModuleListParseException{
+    protected void processLocalModuleInformationFile(File file) throws ModuleListParseException {
         try (FileInputStream fin = new FileInputStream(file)) {
             List<ModuleInformation> pis = new ModuleListParser().parse(fin);
@@ -186,5 +185,5 @@
                 availableModules.put(pi.name, pi);
             }
-        } catch(IOException e) {
+        } catch (IOException e) {
             throw new ModuleListParseException(e);
         }
@@ -194,5 +193,5 @@
         for (Module module : ModuleHandler.moduleList) {
             ModuleInformation info = module.getModuleInformation();
-            if (canceled)return;
+            if (canceled) return;
             if (!availableModules.containsKey(info.name)) {
                 availableModules.put(info.name, info);
@@ -212,11 +211,11 @@
                     getProgressMonitor().createSubTaskMonitor(1, false),
                     new File(location)
-            );
+                    );
             getProgressMonitor().worked(1);
-            if (canceled)return;
+            if (canceled) return;
         }
         analyseInProcessModules();
         getProgressMonitor().worked(1);
-        if (canceled)return;
+        if (canceled) return;
         getProgressMonitor().worked(1);
     }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ReadRemoteModuleInformationTask.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ReadRemoteModuleInformationTask.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ReadRemoteModuleInformationTask.java	(revision 32545)
@@ -46,7 +46,7 @@
     private List<ModuleInformation> availableModules;
 
-    protected enum CacheType {PLUGIN_LIST, ICON_LIST}
-
-    protected void init(Collection<String> sites){
+    protected enum CacheType { PLUGIN_LIST, ICON_LIST }
+
+    protected void init(Collection<String> sites) {
         this.sites = sites;
         if (sites == null) {
@@ -54,6 +54,6 @@
         }
         availableModules = new LinkedList<>();
-
-    }
+    }
+
     /**
      * Creates the task
@@ -73,5 +73,5 @@
      */
     public ReadRemoteModuleInformationTask(ProgressMonitor monitor, Collection<String> sites) {
-        super(tr("Download module list..."), monitor == null ? NullProgressMonitor.INSTANCE: monitor, false /* don't ignore exceptions */);
+        super(tr("Download module list..."), monitor == null ? NullProgressMonitor.INSTANCE : monitor, false /* don't ignore exceptions */);
         init(sites);
     }
@@ -80,5 +80,5 @@
     protected void cancel() {
         canceled = true;
-        synchronized(this) {
+        synchronized (this) {
             if (connection != null) {
                 connection.disconnect();
@@ -110,5 +110,5 @@
             }
             String path = url.getPath();
-            for (int i =0;i<path.length()-4; i++) {
+            for (int i = 0; i < path.length()-4; i++) {
                 char c = path.charAt(i);
                 if (Character.isLetterOrDigit(c)) {
@@ -127,5 +127,5 @@
             }
             name = sb.toString();
-        } catch(MalformedURLException e) {
+        } catch (MalformedURLException e) {
             name = "site-unknown.txt";
         }
@@ -150,8 +150,8 @@
 
             URL url = new URL(printsite);
-            synchronized(this) {
-                connection = (HttpURLConnection)url.openConnection();
+            synchronized (this) {
+                connection = (HttpURLConnection) url.openConnection();
                 connection.setRequestProperty("Cache-Control", "no-cache");
-                connection.setRequestProperty("User-Agent",Version.getInstance().getAgentString());
+                connection.setRequestProperty("User-Agent", Version.getInstance().getAgentString());
                 connection.setRequestProperty("Host", url.getHost());
                 connection.setRequestProperty("Accept-Charset", "utf-8");
@@ -159,19 +159,19 @@
             try (BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"))) {
                 String line;
-                while((line = in.readLine()) != null) {
+                while ((line = in.readLine()) != null) {
                     sb.append(line).append("\n");
                 }
                 return sb.toString();
             }
-        } catch(MalformedURLException e) {
+        } catch (MalformedURLException e) {
             if (canceled) return null;
             e.printStackTrace();
             return null;
-        } catch(IOException e) {
+        } catch (IOException e) {
             if (canceled) return null;
             e.printStackTrace();
             return null;
         } finally {
-            synchronized(this) {
+            synchronized (this) {
                 if (connection != null) {
                     connection.disconnect();
@@ -197,14 +197,14 @@
 
             URL url = new URL(site);
-            synchronized(this) {
-                connection = (HttpURLConnection)url.openConnection();
+            synchronized (this) {
+                connection = (HttpURLConnection) url.openConnection();
                 connection.setRequestProperty("Cache-Control", "no-cache");
-                connection.setRequestProperty("User-Agent",Version.getInstance().getAgentString());
+                connection.setRequestProperty("User-Agent", Version.getInstance().getAgentString());
                 connection.setRequestProperty("Host", url.getHost());
             }
             try (
-                InputStream in = connection.getInputStream();
-                OutputStream out = new FileOutputStream(destFile)
-            ) {
+                    InputStream in = connection.getInputStream();
+                    OutputStream out = new FileOutputStream(destFile)
+                    ) {
                 byte[] buffer = new byte[8192];
                 for (int read = in.read(buffer); read != -1; read = in.read(buffer)) {
@@ -212,14 +212,14 @@
                 }
             }
-        } catch(MalformedURLException e) {
+        } catch (MalformedURLException e) {
             if (canceled) return;
             e.printStackTrace();
             return;
-        } catch(IOException e) {
+        } catch (IOException e) {
             if (canceled) return;
             e.printStackTrace();
             return;
         } finally {
-            synchronized(this) {
+            synchronized (this) {
                 if (connection != null) {
                     connection.disconnect();
@@ -232,8 +232,8 @@
             if (pi.icon == null && pi.iconPath != null) {
                 pi.icon = new ImageProvider(pi.name+".jar/"+pi.iconPath)
-                                .setArchive(destFile)
-                                .setMaxWidth(24)
-                                .setMaxHeight(24)
-                                .setOptional(true).get();
+                        .setArchive(destFile)
+                        .setMaxWidth(24)
+                        .setMaxHeight(24)
+                        .setOptional(true).get();
             }
         }
@@ -250,5 +250,5 @@
             File moduleDir = OdPlugin.getInstance().getModulesDirectory();
             if (!moduleDir.exists()) {
-                if (! moduleDir.mkdirs()) {
+                if (!moduleDir.mkdirs()) {
                     Main.warn(tr("Warning: failed to create module directory ''{0}''. Cannot cache module list from module site ''{1}''.",
                             moduleDir.toString(), site));
@@ -277,8 +277,8 @@
             InputStream in = new ByteArrayInputStream(doc.getBytes("UTF-8"));
             availableModules.addAll(new ModuleListParser().parse(in));
-        } catch(UnsupportedEncodingException e) {
+        } catch (UnsupportedEncodingException e) {
             Main.error(tr("Failed to parse module list document from site ''{0}''. Skipping site. Exception was: {1}", site, e.toString()));
             e.printStackTrace();
-        } catch(ModuleListParseException e) {
+        } catch (ModuleListParseException e) {
             Main.error(tr("Failed to parse module list document from site ''{0}''. Skipping site. Exception was: {1}", site, e.toString()));
             e.printStackTrace();
@@ -295,14 +295,14 @@
         List<File> siteCacheFiles = new LinkedList<>();
         for (String location : ModuleInformation.getModuleLocations()) {
-            File [] f = new File(location).listFiles(
+            File[] f = new File(location).listFiles(
                     new FilenameFilter() {
                         @Override
                         public boolean accept(File dir, String name) {
                             return name.matches("^([0-9]+-)?site.*\\.txt$") ||
-                            name.matches("^([0-9]+-)?site.*-icons\\.zip$");
+                                    name.matches("^([0-9]+-)?site.*-icons\\.zip$");
                         }
                     }
-            );
-            if(f != null && f.length > 0) {
+                    );
+            if (f != null && f.length > 0) {
                 siteCacheFiles.addAll(Arrays.asList(f));
             }
@@ -316,6 +316,5 @@
             siteCacheFiles.remove(createSiteCacheFile(moduleDir, site, CacheType.PLUGIN_LIST));
             siteCacheFiles.remove(createSiteCacheFile(moduleDir, site, CacheType.ICON_LIST));
-            if(list != null)
-            {
+            if (list != null) {
                 getProgressMonitor().worked(1);
                 cacheModuleList(site, list);
@@ -327,8 +326,9 @@
                 if (canceled) return;
             }
-            downloadModuleIcons(site.replace(".txt", "")+"-icons.zip", createSiteCacheFile(moduleDir, site, CacheType.ICON_LIST), getProgressMonitor().createSubTaskMonitor(0, false));
-        }
-        for (File file: siteCacheFiles) /* remove old stuff or whole update process is broken */
-        {
+            downloadModuleIcons(site.replace(".txt", "")+"-icons.zip",
+                    createSiteCacheFile(moduleDir, site, CacheType.ICON_LIST), getProgressMonitor().createSubTaskMonitor(0, false));
+        }
+        for (File file: siteCacheFiles) {
+            // remove old stuff or whole update process is broken
             file.delete();
         }
@@ -337,5 +337,5 @@
     /**
      * Replies true if the task was canceled
-     * @return
+     * @return {@code true} if the task was canceled
      */
     public boolean isCanceled() {
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/util/NamesFrUtils.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/util/NamesFrUtils.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/util/NamesFrUtils.java	(revision 32545)
@@ -26,5 +26,5 @@
                 result += " ";
             }
-            result += dictionary.containsKey(word) ?  dictionary.get(word) : word;
+            result += dictionary.containsKey(word) ? dictionary.get(word) : word;
         }
         return result;
@@ -95,5 +95,6 @@
         } else if (label.equals("Jardin")) {
             return label;
-        } else if (label.startsWith("L'") || label.equals("La") || label.equals("Le") || label.equals("Les") || label.equals("Saint")) { // Lieux-dits
+        } else if (label.startsWith("L'") || label.equals("La") || label.equals("Le") || label.equals("Les") ||
+                label.equals("Saint")) { // Lieux-dits
             return label;
         } else if (label.equals("Lot")) {
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/util/OdUtils.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/util/OdUtils.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/util/OdUtils.java	(revision 32545)
@@ -21,15 +21,15 @@
 
 public abstract class OdUtils {
-    
+
     private static final String TEMP_DIR_PREFIX = "josm_opendata_temp_";
-    
+
     public static final boolean isMultipolygon(OsmPrimitive p) {
         return p instanceof Relation && ((Relation) p).isMultipolygon();
     }
-    
+
     public static final String[] stripQuotesAndExtraChars(String[] split, String sep) {
         List<String> result = new ArrayList<>();
         boolean append = false;
-        for (int i = 0; i<split.length; i++) {
+        for (int i = 0; i < split.length; i++) {
             if (append) {
                 int index = result.size()-1;
@@ -53,21 +53,21 @@
         return result.toArray(new String[0]);
     }
-    
+
     public static final ImageIcon getImageIcon(String iconName) {
         return getImageIcon(iconName, false);
     }
-    
+
     public static final ImageIcon getImageIcon(String iconName, boolean optional) {
         return getImageProvider(iconName, optional).get();
     }
-    
+
     public static final ImageProvider getImageProvider(String iconName) {
         return getImageProvider(iconName, false);
     }
-    
+
     public static final ImageProvider getImageProvider(String iconName, boolean optional) {
         return new ImageProvider(iconName).setOptional(optional).setAdditionalClassLoaders(ModuleHandler.getResourceClassLoaders());
     }
-    
+
     public static final String getJosmLanguage() {
         String lang = Main.pref.get("language");
@@ -77,5 +77,5 @@
         return lang;
     }
-    
+
     public static final double convertMinuteSecond(double minute, double second) {
         return (minute/60.0) + (second/3600.0);
@@ -85,5 +85,5 @@
         return degree + convertMinuteSecond(minute, second);
     }
-    
+
     public static final File createTempDir() throws IOException {
         final File temp = File.createTempFile(TEMP_DIR_PREFIX, Long.toString(System.nanoTime()));
@@ -96,8 +96,8 @@
             throw new IOException("Could not create temp directory: " + temp.getAbsolutePath());
         }
-        
+
         return temp;
     }
-    
+
     public static final void deleteDir(File dir) {
         for (File file : dir.listFiles()) {
@@ -110,5 +110,5 @@
         }
     }
-    
+
     public static final void deletePreviousTempDirs() {
         File tmpDir = new File(System.getProperty("java.io.tmpdir"));
Index: /applications/editors/josm/plugins/opendata/test/unit/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifReaderTest.java
===================================================================
--- /applications/editors/josm/plugins/opendata/test/unit/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifReaderTest.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/test/unit/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifReaderTest.java	(revision 32545)
@@ -26,5 +26,5 @@
     @Rule
     public JOSMTestRules rules = new JOSMTestRules().preferences();
-    
+
     private static AbstractDataSetHandler newHandler(final String epsgCode) {
         AbstractDataSetHandler handler = new AbstractDataSetHandler() {
@@ -33,4 +33,5 @@
                 return true;
             }
+
             @Override
             public void updateDataSet(DataSet ds) {
@@ -42,5 +43,5 @@
         return handler;
     }
-    
+
     /**
      * Non-regression test for ticket <a href="https://josm.openstreetmap.de/ticket/9592">#9592</a>
Index: /applications/editors/josm/plugins/opendata/test/unit/org/openstreetmap/josm/plugins/opendata/core/io/geographic/ShpReaderTest.java
===================================================================
--- /applications/editors/josm/plugins/opendata/test/unit/org/openstreetmap/josm/plugins/opendata/core/io/geographic/ShpReaderTest.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/test/unit/org/openstreetmap/josm/plugins/opendata/core/io/geographic/ShpReaderTest.java	(revision 32545)
@@ -31,5 +31,5 @@
 
     /**
-     * Non-regression test for ticket <a href="https://josm.openstreetmap.de/ticket/12714">#12714/a>
+     * Non-regression test for ticket <a href="https://josm.openstreetmap.de/ticket/12714">#12714</a>
      * @throws IOException if an error occurs during reading
      */
@@ -55,5 +55,5 @@
         }
     }
-    
+
     /**
      * Non-regression test for ticket <a href="https://josm.openstreetmap.de/ticket/8309">#8309</a>
Index: /applications/editors/josm/plugins/opendata/test/unit/org/openstreetmap/josm/plugins/opendata/core/io/tabular/CsvReaderTest.java
===================================================================
--- /applications/editors/josm/plugins/opendata/test/unit/org/openstreetmap/josm/plugins/opendata/core/io/tabular/CsvReaderTest.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/test/unit/org/openstreetmap/josm/plugins/opendata/core/io/tabular/CsvReaderTest.java	(revision 32545)
@@ -29,5 +29,5 @@
     @Rule
     public JOSMTestRules rules = new JOSMTestRules().preferences();
-    
+
     private static AbstractDataSetHandler newHandler(final String epsgCode) {
         AbstractDataSetHandler handler = new AbstractDataSetHandler() {
@@ -36,4 +36,5 @@
                 return true;
             }
+
             @Override
             public void updateDataSet(DataSet ds) {
@@ -45,4 +46,5 @@
                 return true;
             }
+
             @Override
             public LatLon getCoor(EastNorth en, String[] fields) {
@@ -52,5 +54,5 @@
         return handler;
     }
-    
+
     /**
      * Non-regression test for ticket <a href="https://josm.openstreetmap.de/ticket/10214">#10214</a>
@@ -63,5 +65,5 @@
         }
     }
-    
+
     /**
      * Non-regression test for ticket <a href="https://josm.openstreetmap.de/ticket/8805">#8805</a>
Index: /applications/editors/josm/plugins/opendata/util/opendata/ModuleListGenerator.java
===================================================================
--- /applications/editors/josm/plugins/opendata/util/opendata/ModuleListGenerator.java	(revision 32544)
+++ /applications/editors/josm/plugins/opendata/util/opendata/ModuleListGenerator.java	(revision 32545)
@@ -15,82 +15,86 @@
 import java.util.zip.ZipOutputStream;
 
-public class ModuleListGenerator {
+public final class ModuleListGenerator {
 
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		final String url = "http://svn.openstreetmap.org/applications/editors/josm/plugins/opendata/dist/";
-		String baseDir = "";
-		if (args.length > 0) {
-			baseDir = args[0];
-		}
-		try (
-			BufferedWriter list = new BufferedWriter(new FileWriter(baseDir+"modules.txt"));
-			ZipOutputStream zip = new ZipOutputStream(new FileOutputStream(baseDir+"modules-icons.zip"));
-		) {
-			for (File file : new File(baseDir+"dist").listFiles(new FilenameFilter() {
-				@Override
-				public boolean accept(File dir, String name) {
-					return name.endsWith(".jar");
-				}
-			})) {
-				try {
-					String filename = file.getName();
-					System.out.println("Processing "+filename);
-					list.write(filename+";"+url+filename); list.newLine();
-					Manifest mf = new JarFile(file).getManifest();
-					for (Object att : mf.getMainAttributes().keySet()) {
-						Object value = mf.getMainAttributes().get(att);
-						if (value != null) {
-							list.write("\t"+att+": "+value.toString()); list.newLine();
-							if (att.toString().equals("Module-Icon")) {
-								// Directory with jar name, including extension
-								String name = filename+"/";
-								zip.putNextEntry(new ZipEntry(name));
-								// Directory tree to image
-								String[] items = value.toString().split("/");
-								for (int i=0; i<items.length-1; i++) {
-									zip.putNextEntry(new ZipEntry(name += items[i]+"/"));
-								}
-								// Image file
-								zip.putNextEntry(new ZipEntry(name += items[items.length-1]));
-								try {
-									FileInputStream in;
-									try {
-										in = new FileInputStream(baseDir+"modules/"+filename.replace(".jar", "/")+value.toString());
-									} catch (FileNotFoundException e) {
-										// If not in module dir, may be in main images directory
-										if (value.toString().startsWith("images/")) {
-											in = new FileInputStream(baseDir+value.toString());
-										} else {
-											throw e;
-										}
-									}
-									try {
-										byte[] buffer = new byte[4096];
-										int n = -1;
-										while ((n = in.read(buffer)) > 0) {
-											zip.write(buffer, 0, n);
-										}
-									} finally {
-										in.close();
-									}
-								} catch (IOException e) {
-									System.err.println("Cannot load Image-Icon: "+value.toString());
-								} finally {
-									zip.closeEntry();
-								}
-							}
-						}
-					}
-					
-				} catch (IOException e) {
-					e.printStackTrace();
-				}
-			}
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-	}
+    private ModuleListGenerator() {
+        // Hide default constructor for utilities classes
+    }
+
+    /**
+     * @param args Main program arguments
+     */
+    public static void main(String[] args) {
+        final String url = "http://svn.openstreetmap.org/applications/editors/josm/plugins/opendata/dist/";
+        String baseDir = "";
+        if (args.length > 0) {
+            baseDir = args[0];
+        }
+        try (
+                BufferedWriter list = new BufferedWriter(new FileWriter(baseDir+"modules.txt"));
+                ZipOutputStream zip = new ZipOutputStream(new FileOutputStream(baseDir+"modules-icons.zip"));
+                ) {
+            for (File file : new File(baseDir+"dist").listFiles(new FilenameFilter() {
+                @Override
+                public boolean accept(File dir, String name) {
+                    return name.endsWith(".jar");
+                }
+            })) {
+                try {
+                    String filename = file.getName();
+                    System.out.println("Processing "+filename);
+                    list.write(filename+";"+url+filename); list.newLine();
+                    Manifest mf = new JarFile(file).getManifest();
+                    for (Object att : mf.getMainAttributes().keySet()) {
+                        Object value = mf.getMainAttributes().get(att);
+                        if (value != null) {
+                            list.write("\t"+att+": "+value.toString()); list.newLine();
+                            if (att.toString().equals("Module-Icon")) {
+                                // Directory with jar name, including extension
+                                String name = filename+"/";
+                                zip.putNextEntry(new ZipEntry(name));
+                                // Directory tree to image
+                                String[] items = value.toString().split("/");
+                                for (int i = 0; i < items.length-1; i++) {
+                                    zip.putNextEntry(new ZipEntry(name += items[i]+"/"));
+                                }
+                                // Image file
+                                zip.putNextEntry(new ZipEntry(name += items[items.length-1]));
+                                try {
+                                    FileInputStream in;
+                                    try {
+                                        in = new FileInputStream(baseDir+"modules/"+filename.replace(".jar", "/")+value.toString());
+                                    } catch (FileNotFoundException e) {
+                                        // If not in module dir, may be in main images directory
+                                        if (value.toString().startsWith("images/")) {
+                                            in = new FileInputStream(baseDir+value.toString());
+                                        } else {
+                                            throw e;
+                                        }
+                                    }
+                                    try {
+                                        byte[] buffer = new byte[4096];
+                                        int n = -1;
+                                        while ((n = in.read(buffer)) > 0) {
+                                            zip.write(buffer, 0, n);
+                                        }
+                                    } finally {
+                                        in.close();
+                                    }
+                                } catch (IOException e) {
+                                    System.err.println("Cannot load Image-Icon: "+value.toString());
+                                } finally {
+                                    zip.closeEntry();
+                                }
+                            }
+                        }
+                    }
+
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
 }
