Index: /trunk/src/org/openstreetmap/josm/data/AutosaveTask.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/AutosaveTask.java	(revision 7028)
+++ /trunk/src/org/openstreetmap/josm/data/AutosaveTask.java	(revision 7029)
@@ -179,5 +179,5 @@
     }
 
-    private void savelayer(AutosaveLayerInfo info) throws IOException {
+    private void savelayer(AutosaveLayerInfo info) {
         if (!info.layer.getName().equals(info.layerName)) {
             setLayerFileName(info);
@@ -263,17 +263,13 @@
                     if (info.layer == osmLayer) {
 
-                        try {
-                            savelayer(info);
-                            File lastFile = info.backupFiles.pollLast();
-                            if (lastFile != null) {
-                                moveToDeletedLayersFolder(lastFile);
+                        savelayer(info);
+                        File lastFile = info.backupFiles.pollLast();
+                        if (lastFile != null) {
+                            moveToDeletedLayersFolder(lastFile);
+                        }
+                        for (File file: info.backupFiles) {
+                            if (file.delete()) {
+                                getPidFile(file).delete();
                             }
-                            for (File file: info.backupFiles) {
-                                if (file.delete()) {
-                                    getPidFile(file).delete();
-                                }
-                            }
-                        } catch (IOException e) {
-                            Main.error(tr("Error while creating backup of removed layer: {0}", e.getMessage()));
                         }
 
Index: /trunk/src/org/openstreetmap/josm/gui/conflict/pair/nodes/NodeListTableCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/conflict/pair/nodes/NodeListTableCellRenderer.java	(revision 7028)
+++ /trunk/src/org/openstreetmap/josm/gui/conflict/pair/nodes/NodeListTableCellRenderer.java	(revision 7029)
@@ -131,5 +131,5 @@
     @SuppressWarnings("unchecked")
     protected ListMergeModel<Node>.EntriesTableModel getModel(JTable table) {
-        return (ListMergeModel.EntriesTableModel)table.getModel();
+        return (ListMergeModel<Node>.EntriesTableModel)table.getModel();
     }
 }
Index: /trunk/src/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberTableCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberTableCellRenderer.java	(revision 7028)
+++ /trunk/src/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberTableCellRenderer.java	(revision 7029)
@@ -147,5 +147,5 @@
     @SuppressWarnings("unchecked")
     protected ListMergeModel<Node>.EntriesTableModel getModel(JTable table) {
-        return (ListMergeModel.EntriesTableModel)table.getModel();
+        return (ListMergeModel<Node>.EntriesTableModel)table.getModel();
     }
 }
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 7028)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 7029)
@@ -563,17 +563,4 @@
         }
 
-        /**
-         * Returns the index of the relation
-         * @param rel The relation to look for
-         *
-         * @return index of relation (null if it cannot be found)
-         */
-        public Integer getRelationIndex(Relation rel) {
-            int i = relations.indexOf(rel);
-            if (i<0)
-                return null;
-            return i;
-        }
-
         private Integer getVisibleRelationIndex(Relation rel) {
             int i = getVisibleRelations().indexOf(rel);
@@ -631,4 +618,8 @@
     }
 
+    /**
+     * Replies the list of selected relations. Empty list, if there are no selected relations.
+     * @return the list of selected, non-new relations.
+     */
     public Collection<Relation> getSelectedRelations() {
         return model.getSelectedRelations();
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java	(revision 7028)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java	(revision 7029)
@@ -53,4 +53,5 @@
 import javax.swing.JPopupMenu;
 import javax.swing.KeyStroke;
+import javax.swing.ListCellRenderer;
 import javax.swing.table.DefaultTableModel;
 import javax.swing.text.JTextComponent;
@@ -87,5 +88,5 @@
     // Selection that we are editing by using both dialogs
     Collection<OsmPrimitive> sel;
-    
+
     private String changedKey;
     private String objKey;
@@ -127,7 +128,7 @@
 
         final AddTagsDialog addDialog = new AddTagsDialog();
-        
+
         addDialog.showDialog();
-        
+
         addDialog.destroyActions();
         if (addDialog.getValue() == 1)
@@ -136,5 +137,5 @@
             addDialog.undoAllTagsAdding();
     }
-    
+
     /**
     * Edit the value in the tags table row
@@ -150,5 +151,5 @@
         String key = tagData.getValueAt(row, 0).toString();
         objKey=key;
-        
+
         @SuppressWarnings("unchecked")
         final EditTagDialog editDialog = new EditTagDialog(key, row,
@@ -158,5 +159,5 @@
         editDialog.performTagEdit();
     }
-    
+
     /**
      * If during last editProperty call user changed the key name, this key will be returned
@@ -166,5 +167,5 @@
         return changedKey;
     }
-    
+
     public void resetChangedKey() {
         changedKey = null;
@@ -233,12 +234,13 @@
                 }
             };
-        
-        DefaultListCellRenderer cellRenderer = new DefaultListCellRenderer() {
-                @Override public Component getListCellRendererComponent(JList list,
-                        Object value, int index, boolean isSelected,  boolean cellHasFocus){
-                    Component c = super.getListCellRendererComponent(list, value,
-                            index, isSelected, cellHasFocus);
+
+        ListCellRenderer<AutoCompletionListItem> cellRenderer = new ListCellRenderer<AutoCompletionListItem>() {
+            final DefaultListCellRenderer def = new DefaultListCellRenderer();
+                @Override
+                public Component getListCellRendererComponent(JList<? extends AutoCompletionListItem> list,
+                        AutoCompletionListItem value, int index, boolean isSelected,  boolean cellHasFocus){
+                    Component c = def.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
                     if (c instanceof JLabel) {
-                        String str = ((AutoCompletionListItem) value).getValue();
+                        String str = value.getValue();
                         if (valueCount.containsKey(objKey)) {
                             Map<String, Integer> m = valueCount.get(objKey);
@@ -253,5 +255,5 @@
                 }
             };
-        
+
         private EditTagDialog(String key, int row, Map<String, Integer> map, final boolean initialFocusOnKey) {
             super(Main.parent, trn("Change value?", "Change values?", map.size()), new String[] {tr("OK"),tr("Cancel")});
@@ -262,7 +264,7 @@
             this.row = row;
             this.m = map;
-            
+
             JPanel mainPanel = new JPanel(new BorderLayout());
-                    
+
             String msg = "<html>"+trn("This will change {0} object.",
                     "This will change up to {0} objects.", sel.size(), sel.size())
@@ -292,5 +294,5 @@
 
             final String selection= m.size()!=1?tr("<different>"):m.entrySet().iterator().next().getKey();
-            
+
             values = new AutoCompletingComboBox(selection);
             values.setRenderer(cellRenderer);
@@ -311,7 +313,7 @@
             });
             addFocusAdapter(autocomplete, usedValuesAwareComparator);
-            
+
             setContent(mainPanel, false);
-            
+
             addWindowListener(new WindowAdapter() {
                 @Override
@@ -325,5 +327,5 @@
             });
         }
-        
+
         /**
          * Edit tags of multiple selected objects according to selected ComboBox values
@@ -406,5 +408,5 @@
         AutoCompletingComboBox values;
         Component componentUnderMouse;
-        
+
         public AbstractTagsDialog(Component parent, String title, String[] buttonTexts) {
             super(parent, title, buttonTexts);
@@ -422,5 +424,5 @@
             // https://bugs.openjdk.java.net/browse/JDK-6200438
             // https://bugs.openjdk.java.net/browse/JDK-6464548
-            
+
             setRememberWindowGeometry(getClass().getName() + ".geometry",
                 WindowGeometry.centerInWindow(Main.parent, size));
@@ -448,5 +450,5 @@
             super.setVisible(visible);
         }
-        
+
         private void selectACComboBoxSavingUnixBuffer(AutoCompletingComboBox cb) {
             // select compbobox with saving unix system selection (middle mouse paste)
@@ -462,13 +464,13 @@
             }
         }
-        
+
         public void selectKeysComboBox() {
             selectACComboBoxSavingUnixBuffer(keys);
         }
-        
+
         public void selectValuesCombobox()   {
             selectACComboBoxSavingUnixBuffer(values);
         }
-        
+
         /**
         * Create a focus handling adapter and apply in to the editor component of value
@@ -497,5 +499,5 @@
            return focus;
         }
-        
+
         protected JPopupMenu popupMenu = new JPopupMenu() {
             JCheckBoxMenuItem fixTagLanguageCb = new JCheckBoxMenuItem(
@@ -516,5 +518,5 @@
     class AddTagsDialog extends AbstractTagsDialog {
         List<JosmAction> recentTagsActions = new ArrayList<>();
-        
+
         // Counter of added commands for possible undo
         private int commandCount;
@@ -525,9 +527,9 @@
             setCancelButton(2);
             configureContextsensitiveHelp("/Dialog/AddValue", true /* show help button */);
-            
+
             JPanel mainPanel = new JPanel(new GridBagLayout());
             keys = new AutoCompletingComboBox();
             values = new AutoCompletingComboBox();
-            
+
             mainPanel.add(new JLabel("<html>"+trn("This will change up to {0} object.",
                 "This will change up to {0} objects.", sel.size(),sel.size())
@@ -580,5 +582,5 @@
                 recentTagsToShow = MAX_LRU_TAGS_NUMBER;
             }
-            
+
             // Add tag on Shift-Enter
             mainPanel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
@@ -591,11 +593,11 @@
                     }
                 });
-                    
+
             suggestRecentlyAddedTags(mainPanel, recentTagsToShow, focus);
-            
+
             setContent(mainPanel, false);
-            
+
             selectKeysComboBox();
-            
+
             popupMenu.add(new AbstractAction(tr("Set number of recently added tags")) {
                 @Override
@@ -616,5 +618,5 @@
             popupMenu.add(rememberLastTags);
         }
-        
+
         private void selectNumberOfTags() {
             String s = JOptionPane.showInputDialog(this, tr("Please enter the number of recently added tags to display"));
@@ -630,5 +632,5 @@
             JOptionPane.showMessageDialog(this, tr("Please enter integer number between 0 and {0}", MAX_LRU_TAGS_NUMBER));
         }
-        
+
         private void suggestRecentlyAddedTags(JPanel mainPanel, int tagsToShow, final FocusAdapter focus) {
             if (!(tagsToShow > 0 && !recentTags.isEmpty()))
@@ -636,5 +638,5 @@
 
             mainPanel.add(new JLabel(tr("Recently added tags")), GBC.eol());
-            
+
             int count = 1;
             // We store the maximum number (9) of recent tags to allow dynamic change of number of tags shown in the preferences.
@@ -753,5 +755,5 @@
             changedKey = key;
         }
-        
+
         public void undoAllTagsAdding() {
             Main.main.undoRedo.undo(commandCount);
Index: /trunk/src/org/openstreetmap/josm/gui/download/BookmarkSelection.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/download/BookmarkSelection.java	(revision 7028)
+++ /trunk/src/org/openstreetmap/josm/gui/download/BookmarkSelection.java	(revision 7029)
@@ -221,5 +221,5 @@
                 return;
             for (Object sel: sels) {
-                ((DefaultListModel)bookmarks.getModel()).removeElement(sel);
+                ((DefaultListModel<Bookmark>)bookmarks.getModel()).removeElement(sel);
             }
             bookmarks.save();
Index: /trunk/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java	(revision 7028)
+++ /trunk/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java	(revision 7029)
@@ -37,4 +37,5 @@
 import javax.swing.JScrollPane;
 import javax.swing.KeyStroke;
+import javax.swing.ListCellRenderer;
 import javax.swing.WindowConstants;
 import javax.swing.event.TableModelEvent;
@@ -175,12 +176,12 @@
             lstLayers = new JList<>();
             lstLayers.setCellRenderer(
-                    new DefaultListCellRenderer() {
+                    new ListCellRenderer<SaveLayerInfo>() {
+                        final DefaultListCellRenderer def = new DefaultListCellRenderer();
                         @Override
-                        public Component getListCellRendererComponent(JList list, Object value, int index,
+                        public Component getListCellRendererComponent(JList<? extends SaveLayerInfo> list, SaveLayerInfo info, int index,
                                 boolean isSelected, boolean cellHasFocus) {
-                            SaveLayerInfo info = (SaveLayerInfo)value;
-                            setIcon(info.getLayer().getIcon());
-                            setText(info.getName());
-                            return this;
+                            def.setIcon(info.getLayer().getIcon());
+                            def.setText(info.getName());
+                            return def;
                         }
                     }
Index: /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java	(revision 7028)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java	(revision 7029)
@@ -115,10 +115,6 @@
                 String defaultValue = layerName == null ? getDefaultLabelPattern():"";
                 TemplateEntryProperty parent = layerName == null ? null : forMarker(null);
-                try {
-                    result = new TemplateEntryProperty(key, defaultValue, parent);
-                    CACHE.put(key, result);
-                } catch (ParseError e) {
-                    Main.warn("Unable to parse template engine pattern ''{0}'' for property {1}", defaultValue, key);
-                }
+                result = new TemplateEntryProperty(key, defaultValue, parent);
+                CACHE.put(key, result);
             }
             return result;
@@ -134,10 +130,6 @@
                 String defaultValue = layerName == null?"?{ '{name}' | '{desc}' | '{" + Marker.MARKER_FORMATTED_OFFSET + "}' }":"";
                 TemplateEntryProperty parent = layerName == null ? null : forAudioMarker(null);
-                try {
-                    result = new TemplateEntryProperty(key, defaultValue, parent);
-                    CACHE.put(key, result);
-                } catch (ParseError e) {
-                    Main.warn("Unable to parse template engine pattern ''{0}'' for property {1}", defaultValue, key);
-                }
+                result = new TemplateEntryProperty(key, defaultValue, parent);
+                CACHE.put(key, result);
             }
             return result;
@@ -146,6 +138,5 @@
         private TemplateEntryProperty parent;
 
-
-        private TemplateEntryProperty(String key, String defaultValue, TemplateEntryProperty parent) throws ParseError {
+        private TemplateEntryProperty(String key, String defaultValue, TemplateEntryProperty parent) {
             super(key, defaultValue);
             this.parent = parent;
Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/Cascade.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/Cascade.java	(revision 7028)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/Cascade.java	(revision 7029)
@@ -181,5 +181,5 @@
     public Cascade clone() {
         @SuppressWarnings("unchecked")
-        HashMap<String, Object> clonedProp = (HashMap) ((HashMap) this.prop).clone();
+        HashMap<String, Object> clonedProp = (HashMap<String, Object>) ((HashMap) this.prop).clone();
         Cascade c = new Cascade();
         c.prop = clonedProp;
Index: /trunk/src/org/openstreetmap/josm/io/OsmExporter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmExporter.java	(revision 7028)
+++ /trunk/src/org/openstreetmap/josm/io/OsmExporter.java	(revision 7029)
@@ -43,5 +43,5 @@
     }
 
-    public void exportData(File file, Layer layer, boolean noBackup) throws IOException {
+    public void exportData(File file, Layer layer, boolean noBackup) throws IllegalArgumentException {
         if (layer instanceof OsmDataLayer) {
             save(file, (OsmDataLayer) layer, noBackup);
Index: /trunk/src/org/openstreetmap/josm/io/session/GpxTracksSessionExporter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/session/GpxTracksSessionExporter.java	(revision 7028)
+++ /trunk/src/org/openstreetmap/josm/io/session/GpxTracksSessionExporter.java	(revision 7029)
@@ -179,5 +179,5 @@
     }
 
-    protected void addDataFile(OutputStream out) throws IOException {
+    protected void addDataFile(OutputStream out) {
         Writer writer = new OutputStreamWriter(out, Utils.UTF_8);
         GpxWriter w = new GpxWriter(new PrintWriter(writer));
Index: /trunk/src/org/openstreetmap/josm/io/session/MarkerSessionExporter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/session/MarkerSessionExporter.java	(revision 7028)
+++ /trunk/src/org/openstreetmap/josm/io/session/MarkerSessionExporter.java	(revision 7029)
@@ -17,7 +17,4 @@
 import javax.swing.SwingConstants;
 
-import org.openstreetmap.josm.tools.Utils;
-import org.w3c.dom.Element;
-
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.gpx.GpxData;
@@ -28,4 +25,6 @@
 import org.openstreetmap.josm.io.session.SessionWriter.ExportSupport;
 import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.Utils;
+import org.w3c.dom.Element;
 
 public class MarkerSessionExporter implements SessionLayerExporter {
@@ -85,5 +84,5 @@
     }
 
-    protected void addDataFile(OutputStream out) throws IOException {
+    protected void addDataFile(OutputStream out) {
         Writer writer = new OutputStreamWriter(out, Utils.UTF_8);
         MarkerWriter w = new MarkerWriter(new PrintWriter(writer));
Index: /trunk/src/org/openstreetmap/josm/io/session/OsmDataSessionExporter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/session/OsmDataSessionExporter.java	(revision 7028)
+++ /trunk/src/org/openstreetmap/josm/io/session/OsmDataSessionExporter.java	(revision 7029)
@@ -33,7 +33,4 @@
 import javax.swing.SwingConstants;
 
-import org.openstreetmap.josm.tools.Utils;
-import org.w3c.dom.Element;
-
 import org.openstreetmap.josm.actions.SaveAction;
 import org.openstreetmap.josm.gui.layer.Layer;
@@ -46,4 +43,6 @@
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.Utils;
+import org.w3c.dom.Element;
 
 public class OsmDataSessionExporter implements SessionLayerExporter {
@@ -213,5 +212,5 @@
     }
 
-    protected void addDataFile(OutputStream out) throws IOException {
+    protected void addDataFile(OutputStream out) {
         Writer writer = new OutputStreamWriter(out, Utils.UTF_8);
         OsmWriter w = OsmWriterFactory.createOsmWriter(new PrintWriter(writer), false, layer.data.getVersion());
Index: /trunk/src/org/openstreetmap/josm/tools/AudioUtil.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/AudioUtil.java	(revision 7028)
+++ /trunk/src/org/openstreetmap/josm/tools/AudioUtil.java	(revision 7029)
@@ -4,5 +4,4 @@
 import java.io.File;
 import java.io.IOException;
-import java.net.MalformedURLException;
 import java.net.URL;
 
Index: /trunk/src/org/openstreetmap/josm/tools/OpenBrowser.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/OpenBrowser.java	(revision 7028)
+++ /trunk/src/org/openstreetmap/josm/tools/OpenBrowser.java	(revision 7029)
@@ -6,5 +6,4 @@
 import java.awt.Desktop;
 import java.io.IOException;
-import java.net.MalformedURLException;
 import java.net.URI;
 
@@ -23,5 +22,5 @@
         // Hide default constructor for utils classes
     }
-    
+
     private static void displayUrlFallback(URI uri) throws IOException {
         if (Main.platform == null)
@@ -31,6 +30,6 @@
 
     /**
-     * Displays an external URI using platform associated software. 
-     * A web resource will launch platform's browser, an audio file URI will launch audio player, etc. 
+     * Displays an external URI using platform associated software.
+     * A web resource will launch platform's browser, an audio file URI will launch audio player, etc.
      * @param uri The URI to display
      * @return <code>null</code> for success or a string in case of an error.
@@ -78,6 +77,6 @@
 
     /**
-     * Displays an external URL using platform associated software. 
-     * A web resource will launch platform's browser, an audio file URL will launch audio player, etc. 
+     * Displays an external URL using platform associated software.
+     * A web resource will launch platform's browser, an audio file URL will launch audio player, etc.
      * @param url The URL to display
      * @return <code>null</code> for success or a string in case of an error.
