Index: trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java	(revision 3530)
@@ -44,5 +44,5 @@
  * The "surviving" node will be the one with the lowest positive id.
  * (I.e. it was uploaded to the server and is the oldest one.)
- * 
+ *
  * However we use the location of the node that was selected *last*.
  * The "surviving" node will be moved to that location if it is
@@ -94,5 +94,5 @@
         return targetNode;
     }
-    
+
     /**
      * Find which node to merge into (i.e. which one will be left)
@@ -119,5 +119,5 @@
         return targetNode;
     }
-    
+
 
     /**
@@ -193,5 +193,5 @@
         return mergeNodes(layer, nodes, targetNode, targetNode);
     }
-    
+
     /**
      * Merges the nodes in <code>nodes</code> onto one of the nodes. Uses the dataset
Index: trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java	(revision 3530)
@@ -137,5 +137,5 @@
             }
             msg.append("</ul>");
-            
+
             HelpAwareOptionPane.showMessageDialogInEDT(
                     Main.parent,
@@ -179,9 +179,9 @@
                                 public void run() {
                                     JOptionPane.showMessageDialog(Main.parent, tr(
-                                            "<html>Cannot open directory ''{0}''.<br>Please select a file.</html>", 
+                                            "<html>Cannot open directory ''{0}''.<br>Please select a file.</html>",
                                             f.getAbsolutePath()), tr("Open file"), JOptionPane.ERROR_MESSAGE);
                                 }
                             });
-                            // TODO when changing to Java 6: Don't cancel the 
+                            // TODO when changing to Java 6: Don't cancel the
                             // task here but use different modality. (Currently 2 dialogs
                             // would block each other.)
Index: trunk/src/org/openstreetmap/josm/actions/SimplifyWayAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/SimplifyWayAction.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/actions/SimplifyWayAction.java	(revision 3530)
@@ -188,5 +188,5 @@
      * Replies true if <code>node</code> is a required node which can't be removed
      * in order to simplify the way.
-     * 
+     *
      * @param way the way to be simplified
      * @param node the node to check
@@ -210,5 +210,5 @@
     /**
      * Simplifies a way
-     * 
+     *
      * @param w the way to simplify
      */
@@ -255,5 +255,5 @@
      * Builds the simplified list of nodes for a way segment given by a lower index <code>from</code>
      * and an upper index <code>to</code>
-     * 
+     *
      * @param wnew the way to simplify
      * @param from the lower index
Index: trunk/src/org/openstreetmap/josm/actions/UploadAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/UploadAction.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/actions/UploadAction.java	(revision 3530)
@@ -120,5 +120,5 @@
      * Makes sure primitives in <code>apiData</code> don't participate in conflicts and
      * runs the installed {@see UploadHook}s.
-     * 
+     *
      * @param layer the source layer of the data to be uploaded
      * @param apiData the data to be uploaded
@@ -143,5 +143,5 @@
     /**
      * Uploads data to the OSM API.
-     * 
+     *
      * @param layer the source layer for the data to upload
      * @param apiData the primitives to be added, updated, or deleted
Index: trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 3530)
@@ -164,5 +164,5 @@
             double xoff = en3.east() - base.east();
             double yoff = en3.north() - base.north();
-            
+
             newN1en = new EastNorth(en1.getX() + xoff, en1.getY() + yoff);
             newN2en = new EastNorth(en2.getX() + xoff, en2.getY() + yoff);
Index: trunk/src/org/openstreetmap/josm/data/APIDataSet.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/APIDataSet.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/data/APIDataSet.java	(revision 3530)
@@ -145,5 +145,5 @@
      * Replies true if one of the primitives to be updated or to be deleted
      * participates in the conflict <code>conflict</code>
-     * 
+     *
      * @param conflict the conflict
      * @return true if one of the primitives to be updated or to be deleted
@@ -164,5 +164,5 @@
      * Replies true if one of the primitives to be updated or to be deleted
      * participates in at least one conflict in <code>conflicts</code>
-     * 
+     *
      * @param conflicts the collection of conflicts
      * @return true if one of the primitives to be updated or to be deleted
Index: trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 3530)
@@ -102,5 +102,5 @@
     }
 
-    protected void firePrefrenceChanged(String key, String oldValue, String newValue) {
+    protected void firePreferenceChanged(String key, String oldValue, String newValue) {
         PreferenceChangeEvent evt = new DefaultPreferenceChangeEvent(key, oldValue, newValue);
         for (PreferenceChangedListener l : listeners) {
@@ -114,17 +114,4 @@
     protected final SortedMap<String, String> properties = new TreeMap<String, String>();
     protected final SortedMap<String, String> defaults = new TreeMap<String, String>();
-
-    /**
-     * Override some values on read. This is intended to be used for technology previews
-     * where we want to temporarily modify things without changing the user's preferences
-     * file.
-     */
-    protected static final SortedMap<String, String> override = new TreeMap<String, String>();
-    static {
-        //override.put("osm-server.version", "0.5");
-        //override.put("osm-server.additional-versions", "");
-        //override.put("osm-server.url", "http://openstreetmap.gryph.de/api");
-        //override.put("plugins", null);
-    }
 
     /**
@@ -198,11 +185,9 @@
 
     synchronized public boolean hasKey(final String key) {
-        return override.containsKey(key) ? override.get(key) != null : properties.containsKey(key);
+        return properties.containsKey(key);
     }
 
     synchronized public String get(final String key) {
         putDefault(key, null);
-        if (override.containsKey(key))
-            return override.get(key);
         if (!properties.containsKey(key))
             return "";
@@ -212,6 +197,4 @@
     synchronized public String get(final String key, final String def) {
         putDefault(key, def);
-        if (override.containsKey(key))
-            return override.get(key);
         final String prop = properties.get(key);
         if (prop == null || prop.equals(""))
@@ -226,11 +209,4 @@
                 all.put(e.getKey(), e.getValue());
             }
-        for (final Entry<String,String> e : override.entrySet())
-            if (e.getKey().startsWith(prefix))
-                if (e.getValue() == null) {
-                    all.remove(e.getKey());
-                } else {
-                    all.put(e.getKey(), e.getValue());
-                }
         return all;
     }
@@ -255,11 +231,4 @@
                 all.put(e.getKey().substring(6), e.getValue());
             }
-        for (final Entry<String,String> e : override.entrySet())
-            if (e.getKey().startsWith("color."))
-                if (e.getValue() == null) {
-                    all.remove(e.getKey().substring(6));
-                } else {
-                    all.put(e.getKey().substring(6), e.getValue());
-                }
         return all;
     }
@@ -279,6 +248,4 @@
     synchronized public boolean getBoolean(final String key) {
         putDefault(key, null);
-        if (override.containsKey(key))
-            return override.get(key) == null ? false : Boolean.parseBoolean(override.get(key));
         return properties.containsKey(key) ? Boolean.parseBoolean(properties.get(key)) : false;
     }
@@ -286,11 +253,8 @@
     synchronized public boolean getBoolean(final String key, final boolean def) {
         putDefault(key, Boolean.toString(def));
-        if (override.containsKey(key))
-            return override.get(key) == null ? def : Boolean.parseBoolean(override.get(key));
         return properties.containsKey(key) ? Boolean.parseBoolean(properties.get(key)) : def;
     }
 
     public boolean put(final String key, String value) {
-
         boolean changed = false;
         String oldValue = null;
@@ -319,5 +283,5 @@
         if (changed) {
             // Call outside of synchronized section in case some listener wait for other thread that wait for preference lock
-            firePrefrenceChanged(key, oldValue, value);
+            firePreferenceChanged(key, oldValue, value);
         }
         return changed;
@@ -664,5 +628,5 @@
             Collection<Collection<String>> col = new LinkedList<Collection<String>>();
             for(int num = 0; ; ++num) {
-                Collection<String> c = getCollection(key+"."+num++, null);
+                Collection<String> c = getCollection(key+"."+num, null);
                 if(c == null)
                     break;
@@ -675,12 +639,21 @@
     synchronized public boolean putArray(String key, Collection<Collection<String>> val) {
         boolean res = true;
-        for(String k : getAllPrefix(key + ".").keySet())
-            put(k, null);
+        Collection<String> keys = getAllPrefix(key).keySet();
+        key += ".";
         if(val != null) {
             String s = null;
             int num = 0;
             for(Collection<String> c : val) {
-                if(!putCollection(key+"."+num++, c))
+                keys.remove(key+num);
+                if(!putCollection(key+num++, c))
                     res = false;
+            }
+        }
+        int l = key.length();
+        for(String k : keys) {
+            try {
+              Integer.valueOf(k.substring(l));
+              put(k, null);
+            } catch(Exception e) {
             }
         }
Index: trunk/src/org/openstreetmap/josm/data/conflict/Conflict.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/conflict/Conflict.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/data/conflict/Conflict.java	(revision 3530)
@@ -52,5 +52,5 @@
      * Replies true if the primitive <code>primitive</code> is participating
      * in this conflict
-     * 
+     *
      * @param primitive the primitive
      * @return true if the primitive <code>primitive</code> is participating
@@ -66,5 +66,5 @@
      * Replies true if the primitive with id <code>id</code> is participating
      * in this conflict
-     * 
+     *
      * @param id the primitive id
      * @return true if the primitive <code>primitive</code> is participating
@@ -104,5 +104,5 @@
 
     /**
-     * 
+     *
      * @return True if my primitive was deleted but it has set non deleted status because it's referred by another
      * primitive and references to deleted primitives are not allowed.
Index: trunk/src/org/openstreetmap/josm/data/coor/CoordinateFormat.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/coor/CoordinateFormat.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/data/coor/CoordinateFormat.java	(revision 3530)
@@ -19,10 +19,10 @@
      */
     DEGREES_MINUTES_SECONDS (tr("deg\u00B0 min'' sec\"")),
-    
+
     /**
-     * the nautical format 
+     * the nautical format
      */
     NAUTICAL (tr("deg\u00B0 min'' (Nautical)")),
-    
+
     /**
      * coordinates East/North
Index: trunk/src/org/openstreetmap/josm/data/oauth/OAuthToken.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/oauth/OAuthToken.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/data/oauth/OAuthToken.java	(revision 3530)
@@ -10,5 +10,5 @@
     /**
      * Creates an OAuthToken from the token currently managed by the {@see OAuthConsumer}.
-     * 
+     *
      * @param consumer the consumer
      * @return the token
@@ -23,5 +23,5 @@
     /**
      * Creates a new token
-     * 
+     *
      * @param key the token key
      * @param secret the token secret
@@ -34,5 +34,5 @@
     /**
      * Creates a clone of another token
-     * 
+     *
      * @param other the other token. Must not be null.
      * @throws IllegalArgumentException thrown if other is null
@@ -46,5 +46,5 @@
     /**
      * Replies the token key
-     * 
+     *
      * @return the token key
      */
@@ -55,5 +55,5 @@
     /**
      * Replies the token secret
-     * 
+     *
      * @return the token secret
      */
Index: trunk/src/org/openstreetmap/josm/data/osm/Storage.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/Storage.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/data/osm/Storage.java	(revision 3530)
@@ -175,5 +175,5 @@
     }
 
-    @Override 
+    @Override
     public synchronized boolean add(T t) {
         T orig = putUnique(t);
@@ -187,5 +187,5 @@
         return tOrig != null;
     }
-    
+
     @Override
     public synchronized void clear() {
Index: trunk/src/org/openstreetmap/josm/data/osm/history/HistoryDataSetListener.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/history/HistoryDataSetListener.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/data/osm/history/HistoryDataSetListener.java	(revision 3530)
@@ -8,5 +8,5 @@
      * Fired by a {@see HistoryDataSet} if the cached history of an OSM primitive with
      * id <code>id</code> is updated
-     * 
+     *
      * @param source the data set firing the event
      * @param id the id of the updated primitive
@@ -16,5 +16,5 @@
     /**
      * Fired by a {@see HistoryDataSet} if the history cached is cleared.
-     * 
+     *
      * @param source the history data set firing the event
      */
Index: trunk/src/org/openstreetmap/josm/data/projection/Ellipsoid.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/projection/Ellipsoid.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/data/projection/Ellipsoid.java	(revision 3530)
@@ -196,5 +196,5 @@
         return new LatLon(Math.toDegrees(lt), Math.toDegrees(lg));
     }
-    
+
     /**
      * convert ellipsoidal coordinates to cartesian coordinates
@@ -212,5 +212,5 @@
         XYZ[1] = Rn * Math.cos(phi) * Math.sin(lambda);
         XYZ[2] = Rn * (1 - e2) * Math.sin(phi);
-        
+
         return XYZ;
     }
Index: trunk/src/org/openstreetmap/josm/gui/GettingStarted.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/GettingStarted.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/GettingStarted.java	(revision 3530)
@@ -105,5 +105,5 @@
         // clear the build-in command ctrl+shift+O, because it is used as shortcut in JOSM
         lg.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.SHIFT_MASK | InputEvent.CTRL_MASK), "none");
-            
+
         JScrollPane scroller = new JScrollPane(lg);
         scroller.setViewportBorder(new EmptyBorder(10, 100, 10, 100));
Index: trunk/src/org/openstreetmap/josm/gui/MapScaler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MapScaler.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/MapScaler.java	(revision 3530)
@@ -17,7 +17,7 @@
 
     private final NavigatableComponent mv;
-    
+
     private static int PADDING_RIGHT = 100;
-    
+
     public MapScaler(NavigatableComponent mv) {
         this.mv = mv;
Index: trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMergeModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMergeModel.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMergeModel.java	(revision 3530)
@@ -115,5 +115,5 @@
 
     /**
-     * 
+     *
      * @param entry
      * @return Primitive from my dataset referenced by entry
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/DialogsPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/DialogsPanel.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/DialogsPanel.java	(revision 3530)
@@ -178,7 +178,7 @@
                 }
             }
-            
+
             /**
-             * If we add additional dialogs on startup (e.g. geoimage), they may 
+             * If we add additional dialogs on startup (e.g. geoimage), they may
              * not have an actual height yet.
              * In this case we simply reset everything to it's preferred size.
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 3530)
@@ -518,5 +518,5 @@
     /**
      * Action for downloading incomplete members of selected relations
-     * 
+     *
      */
     class DownloadSelectedIncompleteMembersAction extends AbstractAction implements ListSelectionListener{
@@ -672,5 +672,5 @@
         /**
          * Replies the list of selected relations with incomplete members
-         * 
+         *
          * @return the list of selected relations with incomplete members
          */
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/AdvancedChangesetQueryPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/AdvancedChangesetQueryPanel.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/AdvancedChangesetQueryPanel.java	(revision 3530)
@@ -42,5 +42,5 @@
 /**
  * This panel allows to specify a changeset query
- * 
+ *
  */
 public class AdvancedChangesetQueryPanel extends JPanel {
@@ -191,5 +191,5 @@
     /**
      * Builds the changeset query based on the data entered in the form.
-     * 
+     *
      * @return the changeset query. null, if the data entered doesn't represent
      * a valid changeset query.
@@ -368,5 +368,5 @@
      * This is the panel for selecting whether the query should be restricted to a specific
      * user
-     * 
+     *
      */
     static private class UserRestrictionPanel extends JPanel {
@@ -509,10 +509,10 @@
          * Sets the query restrictions on <code>query</code> for changeset owner based
          * restrictions.
-         * 
+         *
          * @param query the query. Must not be null.
          * @throws IllegalArgumentException thrown if query is null
          * @throws IllegalStateException thrown if one of the available values for query parameters in
          * this panel isn't valid
-         * 
+         *
          */
         public void fillInQuery(ChangesetQuery query) throws IllegalStateException, IllegalArgumentException  {
@@ -961,5 +961,5 @@
     /**
      * Validator for user ids entered in in a {@see JTextComponent}.
-     * 
+     *
      */
     static private class UidInputFieldValidator extends AbstractTextComponentValidator {
@@ -1038,5 +1038,5 @@
      * Validates dates entered as text in in a {@see JTextComponent}. Validates the input
      * on the fly and gives feedback about whether the date is valid or not.
-     * 
+     *
      * Dates can be entered in one of four standard formats defined for the current locale.
      */
@@ -1101,5 +1101,5 @@
      * Validates time values entered as text in in a {@see JTextComponent}. Validates the input
      * on the fly and gives feedback about whether the time value is valid or not.
-     * 
+     *
      * Time values can be entered in one of four standard formats defined for the current locale.
      */
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/BasicChangesetQueryPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/BasicChangesetQueryPanel.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/BasicChangesetQueryPanel.java	(revision 3530)
@@ -28,5 +28,5 @@
 /**
  * This panel presents a list of basic queries for changests.
- * 
+ *
  */
 public class BasicChangesetQueryPanel extends JPanel {
@@ -242,5 +242,5 @@
     /**
      * Responds to changes in the selected query
-     * 
+     *
      */
     class SelectQueryHandler implements ItemListener {
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/ChangesetQueryDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/ChangesetQueryDialog.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/ChangesetQueryDialog.java	(revision 3530)
@@ -33,5 +33,5 @@
 /**
  * This is a modal dialog for entering query criteria to search for changesets.
- * 
+ *
  */
 public class ChangesetQueryDialog extends JDialog {
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/ChangesetQueryTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/ChangesetQueryTask.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/ChangesetQueryTask.java	(revision 3530)
@@ -49,5 +49,5 @@
     /**
      * Creates the task.
-     * 
+     *
      * @param query the query to submit to the OSM server. Must not be null.
      * @throws IllegalArgumentException thrown if query is null.
@@ -61,5 +61,5 @@
     /**
      * Creates the task.
-     * 
+     *
      * @param parent the parent component relative to which the {@see PleaseWaitDialog} is displayed.
      * Must not be null.
@@ -130,5 +130,5 @@
     /**
      * Tries to fully identify the current JOSM user
-     * 
+     *
      * @throws OsmTransferException thrown if something went wrong
      */
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/UrlBasedQueryPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/UrlBasedQueryPanel.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/UrlBasedQueryPanel.java	(revision 3530)
@@ -142,5 +142,5 @@
      * Replies the {@see ChangesetQuery} specified in this panel. null, if no valid changeset query
      * is specified.
-     * 
+     *
      * @return the changeset query
      */
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/DownloadRelationMemberTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/DownloadRelationMemberTask.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/DownloadRelationMemberTask.java	(revision 3530)
@@ -56,5 +56,5 @@
      * Creates a download task for downloading the child primitives {@code children} for all parent
      * relations in {@code parents}.
-     * 
+     *
      * @param parents the collection of parent relations
      * @param children the collection of child primitives to download
Index: trunk/src/org/openstreetmap/josm/gui/download/BookmarkSelection.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/download/BookmarkSelection.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/download/BookmarkSelection.java	(revision 3530)
@@ -89,5 +89,5 @@
         gc.insets = new Insets(5,5,5,5);
         pnl.add(lblCurrentDownloadArea = new JMultilineLabel(""), gc);
-        
+
         gc.weightx = 1.0;
         gc.weighty = 1.0;
Index: trunk/src/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanel.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanel.java	(revision 3530)
@@ -84,5 +84,5 @@
     /**
      * Creates the panel
-     * 
+     *
      * @param changesetCommentModel the model for the changeset comment. Must not be null
      * @throws IllegalArgumentException thrown if {@code changesetCommentModel} is null
Index: trunk/src/org/openstreetmap/josm/gui/io/ChangesetManagementPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/ChangesetManagementPanel.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/io/ChangesetManagementPanel.java	(revision 3530)
@@ -163,5 +163,5 @@
     /**
      * Creates a new panel
-     * 
+     *
      * @param changesetCommentModel the changeset comment model. Must not be null.
      * @throws IllegalArgumentException thrown if {@code changesetCommentModel} is null
@@ -186,5 +186,5 @@
     /**
      * Sets the changeset to be used in the next upload
-     * 
+     *
      * @param cs the changeset
      */
Index: trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java	(revision 3530)
@@ -364,5 +364,5 @@
         /**
          * returns true if the user wants to revisit, false if they
-         * want to continue 
+         * want to continue
          */
         protected boolean warnUploadComment() {
@@ -370,11 +370,11 @@
                 tr("Please revise upload comment"),
                 new String[] {tr("Revise"), tr("Cancel"), tr("Continue as is")});
-            dlg.setContent("<html>" + 
-                    tr("Your upload comment is <i>empty</i>, or <i>very short</i>.<br /><br />" + 
+            dlg.setContent("<html>" +
+                    tr("Your upload comment is <i>empty</i>, or <i>very short</i>.<br /><br />" +
                        "This is technically allowed, but please consider that many users who are<br />" +
                        "watching changes in their area depend on meaningful changeset comments<br />" +
                        "to understand what is going on!<br /><br />" +
                        "If you spend a minute now to explain your change, you will make life<br />" +
-                       "easier for many other mappers.") + 
+                       "easier for many other mappers.") +
                     "</html>");
             dlg.setButtonIcons(new Icon[] {
@@ -382,5 +382,5 @@
                 ImageProvider.get("cancel"),
                 ImageProvider.overlay(
-                    ImageProvider.get("upload"), 
+                    ImageProvider.get("upload"),
                     new ImageIcon(ImageProvider.get("warning-small").getImage().getScaledInstance(10 , 10, Image.SCALE_SMOOTH)),
                     ImageProvider.OverlayPosition.SOUTHEAST)});
Index: trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java	(revision 3530)
@@ -112,5 +112,5 @@
     void setExifImgDir(double exifDir) {
         this.exifImgDir = exifDir;
-    } 
+    }
 
     @Override
Index: trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java	(revision 3530)
@@ -175,5 +175,5 @@
             this.textMap.putAll(textMap);
         }
-        
+
         this.text = null;
         this.offset = offset;
Index: trunk/src/org/openstreetmap/josm/gui/oauth/AbstractAuthorizationUI.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/oauth/AbstractAuthorizationUI.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/oauth/AbstractAuthorizationUI.java	(revision 3530)
@@ -10,6 +10,6 @@
 /**
  * This is the abstract base class for the three authorisation UIs.
- * 
- * 
+ *
+ *
  */
 public abstract class AbstractAuthorizationUI extends VerticallyScrollablePanel{
@@ -34,5 +34,5 @@
      * Replies the URL of the OSM API for which this UI is currently trying to retrieve an OAuth
      * Access Token
-     * 
+     *
      * @return the API URL
      */
@@ -44,5 +44,5 @@
      * Sets the URL of the OSM API for which this UI is currently trying to retrieve an OAuth
      * Access Token
-     * 
+     *
      * @param apiUrl the api URL
      */
@@ -53,5 +53,5 @@
     /**
      * Replies the panel for entering advanced OAuth parameters (see {@see OAuthParameters})
-     * 
+     *
      * @return the panel for entering advanced OAuth parameters
      * @see #getOAuthParameters()
@@ -63,5 +63,5 @@
     /**
      * Replies the current set of advanced OAuth parameters in this UI
-     * 
+     *
      * @return the current set of advanced OAuth parameters in this UI
      */
@@ -72,5 +72,5 @@
     /**
      * Replies the retrieved Access Token. null, if no Access Token was retrieved.
-     * 
+     *
      * @return the retrieved Access Token
      */
@@ -82,5 +82,5 @@
      * Sets the current Access Token. This will fire a property change event for {@see #ACCESS_TOKEN_PROP}
      * if the access token has changed
-     * 
+     *
      * @param accessToken the new access token. null, to clear the current access token
      */
@@ -99,5 +99,5 @@
     /**
      * Replies true if this UI currently has an Access Token
-     * 
+     *
      * @return true if this UI currently has an Access Token
      */
@@ -109,5 +109,5 @@
      * Replies whether the user has chosen to save the Access Token in the JOSM
      * preferences or not.
-     * 
+     *
      * @return true if the user has chosen to save the Access Token
      */
@@ -116,5 +116,5 @@
     /**
      * Initializes the authorisation UI with preference values in <code>pref</code>.
-     * 
+     *
      * @param pref the preferences. Must not be null.
      * @throws IllegalArgumentException thrown if pref is null
Index: trunk/src/org/openstreetmap/josm/gui/oauth/AccessTokenInfoPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/oauth/AccessTokenInfoPanel.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/oauth/AccessTokenInfoPanel.java	(revision 3530)
@@ -18,5 +18,5 @@
 /**
  * Displays the key and the secret of an OAuth Access Token.
- * 
+ *
  */
 public class AccessTokenInfoPanel extends JPanel {
@@ -81,5 +81,5 @@
     /**
      * Displays the key and secret in <code>token</code>.
-     * 
+     *
      * @param token the access  token. If null, the content in the info panel is cleared
      */
Index: trunk/src/org/openstreetmap/josm/gui/oauth/AdvancedOAuthPropertiesPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/oauth/AdvancedOAuthPropertiesPanel.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/oauth/AdvancedOAuthPropertiesPanel.java	(revision 3530)
@@ -171,5 +171,5 @@
     /**
      * Replies the OAuth parameters currently edited in this properties panel.
-     * 
+     *
      * @return the OAuth parameters
      */
@@ -188,5 +188,5 @@
     /**
      * Sets the advanced parameters to be displayed
-     * 
+     *
      * @param parameters the advanced parameters. Must not be null.
      * @throws IllegalArgumentException thrown if parameters is null.
@@ -214,5 +214,5 @@
     /**
      * Initializes the panel from the values in the preferences <code>preferences</code>.
-     * 
+     *
      * @param pref the preferences. Must not be null.
      * @throws IllegalArgumentException thrown if pref is null
@@ -238,5 +238,5 @@
     /**
      * Remembers the current values in the preferences <code>pref</code>.
-     * 
+     *
      * @param pref the preferences. Must not be null.
      * @throws IllegalArgumentException thrown if pref is null.
Index: trunk/src/org/openstreetmap/josm/gui/oauth/FullyAutomaticAuthorizationUI.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/oauth/FullyAutomaticAuthorizationUI.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/oauth/FullyAutomaticAuthorizationUI.java	(revision 3530)
@@ -52,5 +52,5 @@
  * This is an UI which supports a JOSM user to get an OAuth Access Token in a fully
  * automatic process.
- * 
+ *
  */
 public class FullyAutomaticAuthorizationUI extends AbstractAuthorizationUI {
@@ -68,5 +68,5 @@
     /**
      * Builds the panel with the three privileges the user can grant JOSM
-     * 
+     *
      * @return
      */
@@ -78,5 +78,5 @@
     /**
      * Builds the panel for entering the username and password
-     * 
+     *
      * @return
      */
@@ -203,5 +203,5 @@
     /**
      * Builds the panel with the action button  for starting the authorisation
-     * 
+     *
      * @return
      */
@@ -218,5 +218,5 @@
     /**
      * Builds the panel which displays the generated Access Token.
-     * 
+     *
      * @return
      */
@@ -274,5 +274,5 @@
      * Prepares the UI for the first step in the automatic process: entering the authentication
      * and authorisation parameters.
-     * 
+     *
      */
     protected void prepareUIForEnteringRequest() {
@@ -290,5 +290,5 @@
     /**
      * Prepares the UI for the second step in the automatic process: displaying the access token
-     * 
+     *
      */
     protected void prepareUIForResultDisplay() {
Index: trunk/src/org/openstreetmap/josm/gui/oauth/OsmPrivilegesPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/oauth/OsmPrivilegesPanel.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/oauth/OsmPrivilegesPanel.java	(revision 3530)
@@ -85,5 +85,5 @@
     /**
      * Replies the currently entered privileges
-     * 
+     *
      * @return the privileges
      */
Index: trunk/src/org/openstreetmap/josm/gui/oauth/RetrieveAccessTokenTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/oauth/RetrieveAccessTokenTask.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/oauth/RetrieveAccessTokenTask.java	(revision 3530)
@@ -21,5 +21,5 @@
 /**
  * Asynchronous task for retrieving an Access Token.
- * 
+ *
  */
 public class RetrieveAccessTokenTask extends PleaseWaitRunnable {
@@ -34,5 +34,5 @@
     /**
      * Creates the task
-     * 
+     *
      * @param parent the parent component relative to which the {@see PleaseWaitRunnable}-Dialog
      * is displayed
@@ -99,5 +99,5 @@
     /**
      * Replies true if the task was canceled.
-     * 
+     *
      * @return
      */
@@ -108,5 +108,5 @@
     /**
      * Replies the retrieved Access Token. null, if something went wrong.
-     * 
+     *
      * @return the retrieved Access Token
      */
Index: trunk/src/org/openstreetmap/josm/gui/oauth/RetrieveRequestTokenTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/oauth/RetrieveRequestTokenTask.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/oauth/RetrieveRequestTokenTask.java	(revision 3530)
@@ -32,5 +32,5 @@
     /**
      * Creates the task
-     * 
+     *
      * @param parent the parent component relative to which the {@see PleaseWaitRunnable}-Dialog
      * is displayed
@@ -93,5 +93,5 @@
     /**
      * Replies true if the task was canceled
-     * 
+     *
      * @return true if the task was canceled
      */
@@ -102,5 +102,5 @@
     /**
      * Replies the request token. null, if something went wrong.
-     * 
+     *
      * @return the request token
      */
Index: trunk/src/org/openstreetmap/josm/gui/oauth/SemiAutomaticAuthorizationUI.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/oauth/SemiAutomaticAuthorizationUI.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/oauth/SemiAutomaticAuthorizationUI.java	(revision 3530)
@@ -34,5 +34,5 @@
 /**
  * This is the UI for running a semic-automic authorisation procedure.
- * 
+ *
  * In contrast to the fully-automatic procedure the user is dispatched to an
  * external browser for login and authorisation.
Index: trunk/src/org/openstreetmap/josm/gui/oauth/TestAccessTokenTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/oauth/TestAccessTokenTask.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/oauth/TestAccessTokenTask.java	(revision 3530)
@@ -35,8 +35,8 @@
 /**
  * Checks whether an OSM API server can be accessed with a specific Access Token.
- * 
+ *
  * It retrieves the user details for the user which is authorized to access the server with
  * this token.
- * 
+ *
  */
 public class TestAccessTokenTask extends PleaseWaitRunnable {
@@ -50,5 +50,5 @@
     /**
      * Create the task
-     * 
+     *
      * @param parent the parent component relative to which the  {@see PleaseWaitRunnable}-Dialog is displayed
      * @param apiUrl the API URL. Must not be null.
Index: trunk/src/org/openstreetmap/josm/gui/preferences/PluginPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/PluginPreference.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/PluginPreference.java	(revision 3530)
@@ -222,5 +222,5 @@
     /**
      * Replies the list of plugins waiting for update or download
-     * 
+     *
      * @return the list of plugins waiting for update or download
      */
@@ -246,5 +246,5 @@
      * Scans cached plugin lists from plugin download sites and locally available
      * plugin jar files.
-     * 
+     *
      */
     public void readLocalPluginInformation() {
Index: trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreferencesModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreferencesModel.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreferencesModel.java	(revision 3530)
@@ -87,5 +87,5 @@
      * Updates the list of plugin information objects with new information from
      * plugin update sites.
-     * 
+     *
      * @param fromPluginSite plugin information read from plugin update sites
      */
@@ -111,5 +111,5 @@
     /**
      * Replies the list of selected plugin information objects
-     * 
+     *
      * @return the list of selected plugin information objects
      */
@@ -129,5 +129,5 @@
     /**
      * Replies the list of selected plugin information objects
-     * 
+     *
      * @return the list of selected plugin information objects
      */
@@ -158,5 +158,5 @@
     /**
      * Replies the list of plugin informations to display
-     * 
+     *
      * @return the list of plugin informations to display
      */
@@ -168,5 +168,5 @@
     /**
      * Replies the list of plugins waiting for update or download
-     * 
+     *
      * @return the list of plugins waiting for update or download
      */
@@ -185,5 +185,5 @@
     /**
      * Sets whether the plugin is selected or not.
-     * 
+     *
      * @param name the name of the plugin
      * @param selected true, if selected; false, otherwise
@@ -205,5 +205,5 @@
      * Removes all the plugin in {@code plugins} from the list of plugins
      * with a pending download
-     * 
+     *
      * @param plugins the list of plugins to clear for a pending download
      */
@@ -218,5 +218,5 @@
      * Replies the plugin info with the name <code>name</code>. null, if no
      * such plugin info exists.
-     * 
+     *
      * @param name the name. If null, replies null.
      * @return the plugin info.
@@ -251,5 +251,5 @@
      * Replies true if the plugin with name <code>name</code> is currently
      * selected in the plugin model
-     * 
+     *
      * @param name the plugin name
      * @return true if the plugin is selected; false, otherwise
@@ -265,5 +265,5 @@
      * Replies the set of plugins which have been added by the user to
      * the set of activated plugins.
-     * 
+     *
      * @return the set of newly deactivated plugins
      */
@@ -283,5 +283,5 @@
      * Replies the set of plugins which have been removed by the user from
      * the set of activated plugins.
-     * 
+     *
      * @return the set of newly deactivated plugins
      */
@@ -302,5 +302,5 @@
      * Replies the set of plugin names which have been added by the user to
      * the set of activated plugins.
-     * 
+     *
      * @return the set of newly activated plugin names
      */
@@ -318,5 +318,5 @@
      * in this preference model. He has either added plugins or removed plugins
      * being active before.
-     * 
+     *
      * @return true if the collection of active plugins has changed
      */
@@ -329,5 +329,5 @@
      * Refreshes the local version field on the plugins in <code>plugins</code> with
      * the version in the manifest of the downloaded "jar.new"-file for this plugin.
-     * 
+     *
      * @param plugins the collections of plugins to refresh
      */
Index: trunk/src/org/openstreetmap/josm/gui/preferences/server/ApiUrlTestTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/server/ApiUrlTestTask.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/server/ApiUrlTestTask.java	(revision 3530)
@@ -26,10 +26,10 @@
  * It tries to retrieve a list of changesets from the given URL. If it succeeds, the method
  * {@see #isSuccess()} replies true, otherwise false.
- * 
+ *
  * Note: it fetches a list of changesets instead of the much smaller capabilities because - strangely enough -
  * an OSM server "http://x.y.y/api/0.6" not only responds to  "http://x.y.y/api/0.6/capabilities" but also
  * to "http://x.y.y/api/0/capabilities" or "http://x.y.y/a/capabilities" with valid capabilities. If we get
  * valid capabilities with an URL we therefore can't be sure that the base URL is valid API URL.
- * 
+ *
  */
 public class ApiUrlTestTask extends PleaseWaitRunnable{
@@ -43,5 +43,5 @@
     /**
      * Creates the task
-     * 
+     *
      * @param parent the parent component relative to which the {@see PleaseWaitRunnable}-Dialog is displayed
      * @param url the url. Must not be null.
@@ -151,5 +151,5 @@
      * Removes leading and trailing whitespace from the API URL and removes trailing
      * '/'.
-     * 
+     *
      * @return the normalized API URL
      */
Index: trunk/src/org/openstreetmap/josm/gui/preferences/server/AuthenticationPreferencesPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/server/AuthenticationPreferencesPanel.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/server/AuthenticationPreferencesPanel.java	(revision 3530)
@@ -25,5 +25,5 @@
  * This is the preference panel for the authentication method and the authentication
  * parameters.
- * 
+ *
  */
 public class AuthenticationPreferencesPanel extends VerticallyScrollablePanel implements PropertyChangeListener{
Index: trunk/src/org/openstreetmap/josm/gui/preferences/server/BasicAuthenticationPreferencesPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/server/BasicAuthenticationPreferencesPanel.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/server/BasicAuthenticationPreferencesPanel.java	(revision 3530)
@@ -28,5 +28,5 @@
  * The preferences panel for parameters necessary for the Basic Authentication
  * Scheme.
- * 
+ *
  */
 public class BasicAuthenticationPreferencesPanel extends JPanel {
Index: trunk/src/org/openstreetmap/josm/gui/preferences/server/OAuthAccessTokenHolder.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/server/OAuthAccessTokenHolder.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/server/OAuthAccessTokenHolder.java	(revision 3530)
@@ -41,12 +41,12 @@
     /**
      * Sets whether the current access token should be saved to the preferences file.
-     * 
+     *
      * If true, the access token is saved in clear text to the preferences file. The same
      * access token can therefore be used in multiple JOSM sessions.
-     * 
+     *
      * If false, the access token isn't saved to the preferences file. If JOSM is closed,
      * the access token is lost and new token has to be generated by the OSM server the
      * next time JOSM is used.
-     * 
+     *
      * @param saveToPreferences
      */
@@ -57,5 +57,5 @@
     /**
      * Replies the access token key. null, if no access token key is currently set.
-     * 
+     *
      * @return the access token key
      */
@@ -66,5 +66,5 @@
     /**
      * Sets the access token key. Pass in null to remove the current access token key.
-     * 
+     *
      * @param accessTokenKey the access token key
      */
@@ -75,5 +75,5 @@
     /**
      * Replies the access token secret. null, if no access token secret is currently set.
-     * 
+     *
      * @return the access token secret
      */
@@ -84,5 +84,5 @@
     /**
      * Sets the access token secret. Pass in null to remove the current access token secret.
-     * 
+     *
      * @param accessTokenSecret
      */
@@ -99,5 +99,5 @@
     /**
      * Sets the access token hold by this holder.
-     * 
+     *
      * @param accessTokenKey the access token key
      * @param accessTokenSecret the access token secret
@@ -110,5 +110,5 @@
     /**
      * Sets the access token hold by this holder.
-     * 
+     *
      * @param token the access token. Can be null to clear the content in this holder.
      */
@@ -126,5 +126,5 @@
      * Replies true if this holder contains an complete access token, consisting of an
      * Access Token Key and an Access Token Secret.
-     * 
+     *
      * @return true if this holder contains an complete access token
      */
@@ -136,5 +136,5 @@
      * Initializes the content of this holder from the Access Token managed by the
      * credential manager.
-     * 
+     *
      * @param pref the preferences. Must not be null.
      * @param cm the credential manager. Must not be null.
@@ -162,5 +162,5 @@
      * Saves the content of this holder to the preferences and a credential store managed
      * by a credential manager.
-     * 
+     *
      * @param preferences the preferences. Must not be null.
      * @param cm the credentials manager. Must not be null.
Index: trunk/src/org/openstreetmap/josm/gui/preferences/server/OAuthAuthenticationPreferencesPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/server/OAuthAuthenticationPreferencesPanel.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/server/OAuthAuthenticationPreferencesPanel.java	(revision 3530)
@@ -40,7 +40,7 @@
  * showing the current Access Token Key and Access Token Secret, if the
  * user already has an Access Token.
- * 
+ *
  * For initial authorisation see {@see OAuthAuthorisationWizard}.
- * 
+ *
  */
 public class OAuthAuthenticationPreferencesPanel extends JPanel implements PropertyChangeListener {
@@ -58,5 +58,5 @@
     /**
      * Builds the panel for entering the advanced OAuth parameters
-     * 
+     *
      * @return
      */
@@ -172,5 +172,5 @@
      * The preferences panel displayed if there is currently no Access Token available.
      * This means that the user didn't run through the OAuth authorisation procedure yet.
-     * 
+     *
      */
     private class NotYetAuthorisedPanel extends JPanel {
@@ -209,5 +209,5 @@
     /**
      * The preferences panel displayed if there is currently an AccessToken available.
-     * 
+     *
      */
     private class AlreadyAuthorisedPanel extends JPanel {
Index: trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferencesPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferencesPanel.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferencesPanel.java	(revision 3530)
@@ -86,5 +86,5 @@
     /**
      * Builds the panel for the HTTP proxy configuration
-     * 
+     *
      * @return
      */
@@ -162,5 +162,5 @@
     /**
      * Builds the panel for the SOCKS proxy configuration
-     * 
+     *
      * @return
      */
Index: trunk/src/org/openstreetmap/josm/gui/tagging/TagTable.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/TagTable.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/TagTable.java	(revision 3530)
@@ -439,5 +439,5 @@
     /**
      * Inject a tag cell editor in the tag table
-     * 
+     *
      * @param editor
      */
@@ -543,5 +543,5 @@
      * This is a custom implementation of the CellEditorRemover used in JTable
      * to handle the client property <tt>terminateEditOnFocusLost</tt>.
-     * 
+     *
      * This implementation also checks whether focus is transferred to one of a list
      * of dedicated components, see {@see TagTable#doNotStopCellEditingWhenFocused}.
Index: trunk/src/org/openstreetmap/josm/gui/util/RedirectInputMap.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/util/RedirectInputMap.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/gui/util/RedirectInputMap.java	(revision 3530)
@@ -66,5 +66,5 @@
         redirect(source, target);
     }
-    
+
     public static void redirect(JComponent source, JComponent target) {
         InputMap lastParent = source.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
Index: trunk/src/org/openstreetmap/josm/plugins/Plugin.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/Plugin.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/plugins/Plugin.java	(revision 3530)
@@ -48,5 +48,5 @@
     /**
      * Creates the plugin
-     * 
+     *
      * @param info the plugin information describing the plugin.
      */
@@ -57,5 +57,5 @@
     /**
      * Replies the plugin information object for this plugin
-     * 
+     *
      * @return the plugin information object
      */
@@ -66,5 +66,5 @@
     /**
      * Sets the plugin information object for this plugin
-     * 
+     *
      * @parma info the plugin information object
      */
@@ -76,5 +76,5 @@
      * @return The directory for the plugin to store all kind of stuff.
      */
-    public final String getPluginDir() {
+    public String getPluginDir() {
         return new File(Main.pref.getPluginsDirectory(), info.name).getPath();
     }
@@ -103,10 +103,10 @@
      */
     public void copy(String from, String to) throws FileNotFoundException, IOException {
-        String pluginDirName = Main.pref.getPluginsDirectory() + "/" + info.name + "/";
+        String pluginDirName = getPluginDir();
         File pluginDir = new File(pluginDirName);
         if (!pluginDir.exists()) {
             pluginDir.mkdirs();
         }
-        FileOutputStream out = new FileOutputStream(pluginDirName+to);
+        FileOutputStream out = new FileOutputStream(new File(pluginDirName, to));
         InputStream in = getClass().getResourceAsStream(from);
         byte[] buffer = new byte[8192];
Index: trunk/src/org/openstreetmap/josm/plugins/PluginDownloadTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginDownloadTask.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginDownloadTask.java	(revision 3530)
@@ -29,8 +29,8 @@
 /**
  * Asynchronous task for downloading a collection of plugins.
- * 
+ *
  * When the task is finished {@see #getDownloadedPlugins()} replies the list of downloaded plugins
  * and {@see #getFailedPlugins()} replies the list of failed plugins.
- * 
+ *
  */
 public class PluginDownloadTask extends PleaseWaitRunnable{
@@ -47,5 +47,5 @@
     /**
      * Creates the download task
-     * 
+     *
      * @param parent the parent component relative to which the {@see PleaseWaitDialog} is displayed
      * @param toUpdate a collection of plugin descriptions for plugins to update/download. Must not be null.
@@ -61,5 +61,5 @@
     /**
      * Creates the task
-     * 
+     *
      * @param monitor a progress monitor. Defaults to {@see NullProgressMonitor#INSTANCE} if null
      * @param toUpdate a collection of plugin descriptions for plugins to update/download. Must not be null.
@@ -75,5 +75,5 @@
     /**
      * Sets the collection of plugins to update.
-     * 
+     *
      * @param toUpdate the collection of plugins to update. Must not be null.
      * @throws IllegalArgumentException thrown if toUpdate is null
@@ -190,5 +190,5 @@
     /**
      * Replies true if the task was cancelled by the user
-     * 
+     *
      * @return
      */
@@ -199,5 +199,5 @@
     /**
      * Replies the list of successfully downloaded plugins
-     * 
+     *
      * @return the list of successfully downloaded plugins
      */
@@ -208,5 +208,5 @@
     /**
      * Replies the list of plugins whose download has failed
-     * 
+     *
      * @return the list of plugins whose download has failed
      */
Index: trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java	(revision 3530)
@@ -58,7 +58,7 @@
      * Creates a plugin information object by reading the plugin information from
      * the manifest in the plugin jar.
-     * 
+     *
      * The plugin name is derived from the file name.
-     * 
+     *
      * @param file the plugin jar file
      * @throws PluginException if reading the manifest fails
@@ -101,5 +101,5 @@
      * Creates a plugin information object by reading plugin information in Manifest format
      * from the input stream {@code manifestStream}.
-     * 
+     *
      * @param manifestStream the stream to read the manifest from
      * @param name the plugin name
@@ -125,5 +125,5 @@
      * plugin information in a plugin information object retrieved from a plugin
      * update site.
-     * 
+     *
      * @param other the plugin information object retrieved from the update
      * site
@@ -227,5 +227,5 @@
      * Replies the description as HTML document, including a link to a web page with
      * more information, provided such a link is available.
-     * 
+     *
      * @return the description as HTML document
      */
@@ -243,5 +243,5 @@
     /**
      * Load and instantiate the plugin
-     * 
+     *
      * @param the plugin class
      * @return the instantiated and initialized plugin
@@ -265,5 +265,5 @@
     /**
      * Load the class of the plugin
-     * 
+     *
      * @param classLoader the class loader to use
      * @return the loaded class
@@ -356,8 +356,8 @@
      * Replies true if the plugin with the given information is most likely outdated with
      * respect to the referenceVersion.
-     * 
+     *
      * @param referenceVersion the reference version. Can be null if we don't know a
      * reference version
-     * 
+     *
      * @return true, if the plugin needs to be updated; false, otherweise
      */
@@ -375,5 +375,5 @@
      * it is not available locally (its local version is null) or its local version is
      * older than the available version on the server.
-     * 
+     *
      * @return true if the plugin should be updated
      */
@@ -393,5 +393,5 @@
      * Replies true if either the name, the description, or the version match (case insensitive)
      * one of the words in filter. Replies true if filter is null.
-     * 
+     *
      * @param filter the filter expression
      * @return true if this plugin info matches with the filter
Index: trunk/src/org/openstreetmap/josm/plugins/PluginListParser.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginListParser.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginListParser.java	(revision 3530)
@@ -15,5 +15,5 @@
 /**
  * A parser for the plugin list provided by a JOSM Plugin Download Site.
- * 
+ *
  * See <a href="http://josm.openstreetmap.de/plugin">http://josm.openstreetmap.de/plugin</a>
  * for a sample of the document. The format is a custom format, kind of mix of CSV and RFC822 style
@@ -25,5 +25,5 @@
     /**
      * Creates the plugin information object
-     * 
+     *
      * @param name the plugin name
      * @param url the plugin download url
@@ -48,9 +48,9 @@
     /**
      * Parses a plugin information document and replies a list of plugin information objects.
-     * 
+     *
      * See <a href="http://josm.openstreetmap.de/plugin">http://josm.openstreetmap.de/plugin</a>
      * for a sample of the document. The format is a custom format, kind of mix of CSV and RFC822 style
      * name/value-pairs.
-     * 
+     *
      * @param in the input stream from which to parse
      * @return the list of plugin information objects
Index: trunk/src/org/openstreetmap/josm/plugins/ReadLocalPluginInformationTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/ReadLocalPluginInformationTask.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/plugins/ReadLocalPluginInformationTask.java	(revision 3530)
@@ -23,5 +23,5 @@
  * This is an asynchronous task for reading plugin information from the files
  * in the local plugin repositories.
- * 
+ *
  * It scans the files in the local plugins repository (see {@see Preferences#getPluginsDirectory()}
  * and extracts plugin information from three kind of files:
@@ -231,5 +231,5 @@
     /**
      * Replies information about available plugins detected by this task.
-     * 
+     *
      * @return information about available plugins detected by this task.
      */
@@ -240,5 +240,5 @@
     /**
      * Replies true if the task was cancelled by the user
-     * 
+     *
      * @return true if the task was cancelled by the user
      */
Index: trunk/src/org/openstreetmap/josm/tools/I18n.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 3529)
+++ trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 3530)
@@ -106,5 +106,5 @@
         "GTKColorChooserPanel.saturationText",
         "GTKColorChooserPanel.valueText",
-        
+
         /* JOptionPane */
         "OptionPane.okButtonText",
@@ -144,5 +144,5 @@
     /**
      * Provide translation in a context.
-     * There can be different translations for the same text (but 
+     * There can be different translations for the same text (but
      * different context).
      *
