Index: applications/editors/josm/plugins/DirectDownload/src/org/openstreetmap/josm/plugins/directdownload/DownloadDataGui.java
===================================================================
--- applications/editors/josm/plugins/DirectDownload/src/org/openstreetmap/josm/plugins/directdownload/DownloadDataGui.java	(revision 30531)
+++ applications/editors/josm/plugins/DirectDownload/src/org/openstreetmap/josm/plugins/directdownload/DownloadDataGui.java	(revision 30532)
@@ -128,10 +128,14 @@
             return handler.getResult();
         } catch (java.net.MalformedURLException e) {
+            Main.error(e);
             JOptionPane.showMessageDialog(null, tr("Invalid URL {0}", urlString));
         } catch (java.io.IOException e) {
+            Main.error(e);
             JOptionPane.showMessageDialog(null, tr("Error fetching URL {0}", urlString));
         } catch (SAXException e) {
+            Main.error(e);
             JOptionPane.showMessageDialog(null, tr("Error parsing data from URL {0}", urlString));
-        } catch(ParserConfigurationException pce) {
+        } catch (ParserConfigurationException e) {
+            Main.error(e);
             JOptionPane.showMessageDialog(null, tr("Error parsing data from URL {0}", urlString));
         }
Index: applications/editors/josm/plugins/DirectUpload/src/org/openstreetmap/josm/plugins/DirectUpload/UploadDataGui.java
===================================================================
--- applications/editors/josm/plugins/DirectUpload/src/org/openstreetmap/josm/plugins/DirectUpload/UploadDataGui.java	(revision 30531)
+++ applications/editors/josm/plugins/DirectUpload/src/org/openstreetmap/josm/plugins/DirectUpload/UploadDataGui.java	(revision 30532)
@@ -95,5 +95,5 @@
     private HistoryComboBox descriptionField;
     private HistoryComboBox tagsField;
-    private JComboBox visibilityCombo;
+    private JComboBox<String> visibilityCombo;
 
     // Constants used when generating upload request
@@ -130,5 +130,5 @@
         visibilityLabel.setToolTipText(tr("Defines the visibility of your trace for other OSM users."));
         
-        visibilityCombo = new JComboBox();
+        visibilityCombo = new JComboBox<>();
         visibilityCombo.setEditable(false);
         for(visibility v : visibility.values()) {
Index: applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/ElevationProfileDialog.java
===================================================================
--- applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/ElevationProfileDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/ElevationProfileDialog.java	(revision 30532)
@@ -63,5 +63,5 @@
     private final JLabel totalTimeLabel;
     private final JLabel distLabel;
-    private final JComboBox trackCombo;
+    private final JComboBox<IElevationProfile> trackCombo;
     private final JButton zoomButton;
 
@@ -170,5 +170,5 @@
         zoomButton.setEnabled(false);
 
-        trackCombo = new JComboBox(new TrackModel());
+        trackCombo = new JComboBox<>(new TrackModel());
         trackCombo.setPreferredSize(new Dimension(200, 24)); // HACK!
         trackCombo.setEnabled(false); // we have no model on startup
@@ -254,5 +254,4 @@
      * that the model has changed.
      */
-    @SuppressWarnings("unchecked") // TODO: Can be removed in Java 1.7
     private void updateView() {
         if (model == null) {
@@ -410,6 +409,5 @@
     }
 
-    @SuppressWarnings("rawtypes") // TODO: Can be removed in Java 1.7
-    class TrackModel implements ComboBoxModel {
+    class TrackModel implements ComboBoxModel<IElevationProfile> {
         private Collection<ListDataListener> listeners;
 
@@ -445,5 +443,5 @@
 
         @Override
-        public Object getSelectedItem() {
+        public IElevationProfile getSelectedItem() {
             if (model == null) return null;
 
@@ -460,5 +458,4 @@
             }
         }
-
     }
 }
Index: applications/editors/josm/plugins/FastDraw/src/org/openstreetmap/josm/plugins/fastdraw/FastDrawConfigDialog.java
===================================================================
--- applications/editors/josm/plugins/FastDraw/src/org/openstreetmap/josm/plugins/fastdraw/FastDrawConfigDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/FastDraw/src/org/openstreetmap/josm/plugins/fastdraw/FastDrawConfigDialog.java	(revision 30532)
@@ -44,5 +44,5 @@
 //            tr("Autosimplify and save"),tr("Simplify and wait"),tr("Simplify and save"),
 //            tr("Save as is")});
-        JComboBox combo1=new JComboBox(new String[]{tr("Autosimplify"),
+        JComboBox<String> combo1=new JComboBox<>(new String[]{tr("Autosimplify"),
             tr("Simplify with initial epsilon"),tr("Save as is")});
         JCheckBox snapCb=new JCheckBox(tr("Snap to nodes"));
Index: applications/editors/josm/plugins/HouseNumberTaggingTool/src/org/openstreetmap/josm/plugins/housenumbertool/TagDialog.java
===================================================================
--- applications/editors/josm/plugins/HouseNumberTaggingTool/src/org/openstreetmap/josm/plugins/housenumbertool/TagDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/HouseNumberTaggingTool/src/org/openstreetmap/josm/plugins/housenumbertool/TagDialog.java	(revision 30532)
@@ -89,5 +89,5 @@
    private JCheckBox housenumberEnabled;
    private JSlider housenumberChangeSequence;
-   private JComboBox building;
+   private JComboBox<String> building;
    private JRadioButton streetRadio;
    private JRadioButton placeRadio;
@@ -139,5 +139,5 @@
 
       Arrays.sort(buildingStrings);
-      building = new JComboBox(buildingStrings);
+      building = new JComboBox<>(buildingStrings);
       building.setSelectedItem(dto.getBuilding()); 
       building.setMaximumRowCount(50);
Index: applications/editors/josm/plugins/ImportImagePlugin/src/org/openstreetmap/josm/plugins/ImportImagePlugin/LayerPropertiesDialog.java
===================================================================
--- applications/editors/josm/plugins/ImportImagePlugin/src/org/openstreetmap/josm/plugins/ImportImagePlugin/LayerPropertiesDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/ImportImagePlugin/src/org/openstreetmap/josm/plugins/ImportImagePlugin/LayerPropertiesDialog.java	(revision 30532)
@@ -66,5 +66,5 @@
     private JTextField searchField = null;
     private JScrollPane crsListScrollPane = null;
-    private JList crsJList = null;
+    private JList<String> crsJList = null;
     private JButton useDefaultCRSButton = null;
     private JButton applySelectedCRSButton = null;
@@ -406,7 +406,7 @@
      * @return javax.swing.JList    
      */
-    private JList getCrsJList() {
+    private JList<String> getCrsJList() {
         if (crsJList == null) {
-            crsJList = new JList(supportedCRS);
+            crsJList = new JList<>(supportedCRS);
             crsJList.addListSelectionListener(new ListSelectionHandler());
         }
Index: applications/editors/josm/plugins/OsmInspectorPlugin/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- applications/editors/josm/plugins/OsmInspectorPlugin/.settings/org.eclipse.jdt.core.prefs	(revision 30531)
+++ applications/editors/josm/plugins/OsmInspectorPlugin/.settings/org.eclipse.jdt.core.prefs	(revision 30532)
@@ -1,7 +1,95 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
 org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.7
Index: applications/editors/josm/plugins/OsmInspectorPlugin/src/org/openstreetmap/josm/plugins/osminspector/gui/OsmInspectorDialog.java
===================================================================
--- applications/editors/josm/plugins/OsmInspectorPlugin/src/org/openstreetmap/josm/plugins/osminspector/gui/OsmInspectorDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/OsmInspectorPlugin/src/org/openstreetmap/josm/plugins/osminspector/gui/OsmInspectorDialog.java	(revision 30532)
@@ -13,9 +13,7 @@
 import javax.swing.DefaultListModel;
 import javax.swing.JList;
-import javax.swing.JScrollBar;
 import javax.swing.JScrollPane;
 import javax.swing.ListSelectionModel;
 import javax.swing.ScrollPaneConstants;
-import javax.swing.ScrollPaneLayout;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
@@ -38,15 +36,10 @@
 
 	private OsmInspectorLayer layer;
-	private JList bugsList;
+	private JList<String> bugsList;
 	private OsmInspectorNextAction actNext;
 	private OsmInspectorPrevAction actPrev;
-	private DefaultListModel model;
+	private DefaultListModel<String> model;
 
 	private OsmInspectorBugInfoDialog bugInfoDialog;
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 5465011236663660394L;
-
 	
 	public void updateNextPrevAction(OsmInspectorLayer l) {
@@ -61,7 +54,7 @@
 		Main.map.addToggleDialog(this, true);
 
-		model = new DefaultListModel();
+		model = new DefaultListModel<>();
 		refreshModel();
-		bugsList = new JList(model);
+		bugsList = new JList<>(model);
 		bugsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
 		bugsList.setLayoutOrientation(JList.VERTICAL_WRAP);
@@ -125,5 +118,4 @@
 				KeyEvent.VK_K, Shortcut.CTRL_SHIFT);
 		Main.registerActionShortcut(actNext, snext);
-
 	}
 
@@ -135,5 +127,4 @@
 			}
 		}
-
 	}
 
@@ -168,5 +159,4 @@
 	public void hideNotify() {
 		if (dialogsPanel != null) {
-			// TODO Auto-generated method stub
 			super.hideNotify();
 		}
@@ -176,8 +166,4 @@
 			ListSelectionListener {
 
-		/**
-		 * 
-		 */
-		private static final long serialVersionUID = 123266015594117296L;
 		private OsmInspectorLayer layer;
 
@@ -203,6 +189,4 @@
 		@Override
 		public void valueChanged(ListSelectionEvent arg0) {
-			// TODO Auto-generated method stub
-
 		}
 	}
@@ -218,8 +202,4 @@
 			ListSelectionListener {
 
-		/**
-         * 
-         */
-		private static final long serialVersionUID = 1L;
 		private OsmInspectorLayer layer;
 
@@ -227,5 +207,4 @@
 			super("prev");
 			layer = (OsmInspectorLayer) inspector;
-
 		}
 
@@ -246,6 +225,4 @@
 		@Override
 		public void valueChanged(ListSelectionEvent e) {
-			// TODO Auto-generated method stub
-
 		}
 	}
@@ -253,30 +230,20 @@
 	@Override
 	public void mouseClicked(MouseEvent e) {
-		// TODO Auto-generated method stub
-
 	}
 
 	@Override
 	public void mouseEntered(MouseEvent e) {
-		// TODO Auto-generated method stub
-
 	}
 
 	@Override
 	public void mouseExited(MouseEvent e) {
-		// TODO Auto-generated method stub
-
 	}
 
 	@Override
 	public void mousePressed(MouseEvent e) {
-		// TODO Auto-generated method stub
-
 	}
 
 	@Override
 	public void mouseReleased(MouseEvent e) {
-		// TODO Auto-generated method stub
-
 	}
 
@@ -288,11 +255,9 @@
 			refreshBugList();
 		}
-
 	}
 
 	private void refreshBugList() {
 		bugsList.clearSelection();
-		bugsList = new JList(model);
-
+		bugsList = new JList<>(model);
 	}
 
@@ -317,4 +282,3 @@
 		
 	}
-
 }
Index: applications/editors/josm/plugins/addrinterpolation/src/org/openstreetmap/josm/plugins/AddrInterpolation/AddrInterpolationDialog.java
===================================================================
--- applications/editors/josm/plugins/addrinterpolation/src/org/openstreetmap/josm/plugins/AddrInterpolation/AddrInterpolationDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/addrinterpolation/src/org/openstreetmap/josm/plugins/AddrInterpolation/AddrInterpolationDialog.java	(revision 30532)
@@ -93,5 +93,4 @@
     private boolean interpolationMethodSet = false;
 
-
     // NOTE: The following 2 arrays must match in number of elements and position
     // Tag values for map (Except that 'Numeric' is replaced by actual # on map)
@@ -99,12 +98,10 @@
     String[] addrInterpolationStrings = { tr("Odd"), tr("Even"), tr("All"), tr("Alphabetic"), tr("Numeric") }; // Translatable names for display
     private final int NumericIndex = 4;
-    private JComboBox addrInterpolationList = null;
+    private JComboBox<String> addrInterpolationList = null;
 
     // NOTE: The following 2 arrays must match in number of elements and position
     String[] addrInclusionTags = { "actual", "estimate", "potential" }; // Tag values for map
     String[] addrInclusionStrings = { tr("Actual"), tr("Estimate"), tr("Potential") }; // Translatable names for display
-    private JComboBox addrInclusionList = null;
-
-
+    private JComboBox<String> addrInclusionList = null;
 
     // For tracking edit changes as group for undo
@@ -121,8 +118,5 @@
 
         ShowDialog(editControlsPane, name);
-
-    }
-
-
+    }
 
     private void ShowDialog(JPanel editControlsPane, String name) {
@@ -160,6 +154,4 @@
     }
 
-
-
     // Create edit control items and return JPanel on which they reside
     private JPanel CreateEditControls() {
@@ -172,5 +164,4 @@
 
         editControlsPane.setBorder(BorderFactory.createEmptyBorder(15,15,15,15));
-
 
         String streetName = selectedStreet.get("name");
@@ -204,5 +195,5 @@
 
         JLabel numberingLabel = new JLabel(tr("Numbering Scheme:"));
-        addrInterpolationList = new JComboBox(addrInterpolationStrings);
+        addrInterpolationList = new JComboBox<>(addrInterpolationStrings);
 
         JLabel incrementLabel = new JLabel(tr("Increment:"));
@@ -217,5 +208,5 @@
 
         JLabel inclusionLabel = new JLabel(tr("Accuracy:"));
-        addrInclusionList = new JComboBox(addrInclusionStrings);
+        addrInclusionList = new JComboBox<>(addrInclusionStrings);
         addrInclusionList.setSelectedIndex(lastAccuracyIndex);
 
@@ -239,6 +230,4 @@
         }
 
-
-
         JPanel optionPanel = CreateOptionalFields();
         c.gridx = 0;
@@ -248,5 +237,4 @@
 
         editControlsPane.add(optionPanel, c);
-
 
         KeyAdapter enterProcessor = new KeyAdapter() {
@@ -257,5 +245,4 @@
                         dialog.dispose();
                     }
-
                 }
             }
@@ -267,5 +254,4 @@
         addrInterpolationList.addKeyListener(enterProcessor);
         incrementTextField.addKeyListener(enterProcessor);
-
 
         // Watch when Interpolation Method combo box is selected so that
@@ -282,5 +268,4 @@
         });
 
-
         // Watch when Interpolation Method combo box is changed so that
         // Numeric increment box can be enabled or disabled.
@@ -292,8 +277,5 @@
         });
 
-
         editControlsPane.add(cbConvertToHouseNumbers, c);
-
-
 
         if (houseNumberNodes.size() > 0) {
@@ -305,5 +287,4 @@
         editControlsPane.add(new UrlLabel("http://wiki.openstreetmap.org/wiki/JOSM/Plugins/AddrInterpolation",
                 tr("More information about this feature"),2), c);
-
 
         c.gridx = 0;
@@ -332,6 +313,4 @@
     }
 
-
-
     // Call after both starting and ending housenumbers have been entered - usually when
     // combo box gets focus.
@@ -368,6 +347,4 @@
                 }
             }
-
-
         } else {
             // Test for possible alpha
@@ -392,12 +369,7 @@
             // Did not detect alpha
             return false;
-
-        }
-        
+        }
         return true;
-
-    }
-
-
+    }
 
     // Set Interpolation Method combo box to method specified by 'currentMethod' (an OSM key value)
@@ -423,5 +395,4 @@
     }
 
-
     // Set Inclusion Method combo box to method specified by 'currentMethod' (an OSM key value)
     private void SelectInclusion(String currentMethod) {
@@ -435,8 +406,5 @@
         }
         addrInclusionList.setSelectedIndex(currentIndex);
-
-    }
-
-
+    }
 
     // Create optional control fields in a group box
@@ -485,6 +453,4 @@
         AddEditControlRows(optionalTextLabels, optionalEditFields,  editControlsPane);
 
-
-
         JPanel optionPanel = new JPanel(new BorderLayout());
         Border groupBox = BorderFactory.createEtchedBorder();
@@ -498,9 +464,6 @@
     }
 
-
-
     // Populate dialog for any possible existing settings if editing an existing Address interpolation way
     private void GetExistingMapKeys() {
-
 
         // Check all nodes for optional addressing data
@@ -538,11 +501,6 @@
             CheckNodeForAddressTags(firstNode);
             CheckNodeForAddressTags(lastNode);
-
-        }
-
-
-
-    }
-
+        }
+    }
 
     // Check for any existing address data.   If found,
@@ -571,8 +529,5 @@
             lastFullAddress = value;
         }
-
-    }
-
-
+    }
 
     // Look for a possible 'associatedStreet' type of relation for selected street
@@ -609,13 +564,10 @@
                         }
                     }
-
-                }
-            }
-
+                }
+            }
         }
 
         return "";
     }
-
 
     // We can proceed only if there is both a named way (the 'street') and
@@ -668,5 +620,4 @@
                 }
             }
-
         }
 
@@ -697,8 +648,6 @@
         }
 
-
         return isValid;
     }
-
 
     /**
@@ -728,6 +677,4 @@
     }
 
-
-
     public void actionPerformed(ActionEvent e) {
         if ("ok".equals(e.getActionCommand())) {
@@ -735,12 +682,8 @@
                 dialog.dispose();
             }
-
         } else  if ("cancel".equals(e.getActionCommand())) {
             dialog.dispose();
-
-        }
-    }
-
-
+        }
+    }
 
     // For Alpha interpolation, return base string
@@ -757,5 +700,4 @@
     }
 
-
     private char LastChar(String strValue) {
         if (strValue.length() > 0) {
@@ -767,8 +709,6 @@
     }
 
-
     // Test for valid positive long int
-    private boolean isLong( String input )
-    {
+    private boolean isLong( String input ) {
         try
         {
@@ -791,5 +731,4 @@
         return p.matcher(s).matches();
     }
-
 
     private void InterpolateAlphaSection(int startNodeIndex, int endNodeIndex, String endValueString,
@@ -828,6 +767,4 @@
                 LatLon newHouseNumberPosition = lastHouseNode.getCoor().interpolate(toNode.getCoor(), proportion);
 
-
-
                 Node newHouseNumberNode = new Node(newHouseNumberPosition);
                 currentChar++;
@@ -850,8 +787,5 @@
             }
         }
-
-
-    }
-
+    }
 
     private void CreateAlphaInterpolation(String startValueString, String endValueString) {
@@ -889,7 +823,5 @@
         // End nodes do not actually contain housenumber value yet (command has not executed), so use user-entered value
         InterpolateAlphaSection(startIndex, addrInterpolationWay.getNodesCount()-1, endValueString, startingChar, endingChar);
-
-    }
-
+    }
 
     private double CalculateSegmentLengths(int startNodeIndex, int endNodeIndex, double segmentLengths[]) {
@@ -905,7 +837,5 @@
         }
         return totalLength;
-
-    }
-
+    }
 
     private void InterpolateNumericSection(int startNodeIndex, int endNodeIndex,
@@ -913,5 +843,4 @@
             long increment) {
 
-
         int nSegments  =endNodeIndex - startNodeIndex;
 
@@ -920,5 +849,4 @@
         // Total length of address interpolation way section
         double totalLength= CalculateSegmentLengths(startNodeIndex, endNodeIndex, segmentLengths);
-
 
         int nHouses = (int)((endingAddr - startingAddr) / increment) -1;
@@ -956,13 +884,9 @@
                 lastHouseNode = newHouseNumberNode;
 
-
                 segmentLengths[currentSegment] -= distanceNeeded; // Track amount used
                 nHouses -- ;
             }
         }
-
-
-    }
-
+    }
 
     private void CreateNumericInterpolation(String startValueString, String endValueString, long increment) {
@@ -970,5 +894,4 @@
         long startingAddr = Long.parseLong( startValueString );
         long endingAddr = Long.parseLong( endValueString );
-
 
         // Search for possible anchors from the 2nd node to 2nd from last, interpolating between each anchor
@@ -1000,5 +923,4 @@
     }
 
-
     // Called if user has checked "Convert to House Numbers" checkbox.
     private void ConvertWayToHousenumbers(String selectedMethod, String startValueString, String endValueString,
@@ -1011,5 +933,4 @@
 
             CreateAlphaInterpolation(startValueString, endValueString);
-
 
         } else {
@@ -1021,12 +942,9 @@
             }
             CreateNumericInterpolation(startValueString, endValueString, increment);
-
-        }
-
+        }
 
         RemoveAddressInterpolationWay();
 
     }
-
 
     private void RemoveAddressInterpolationWay() {
@@ -1044,8 +962,5 @@
 
         addrInterpolationWay = null;
-
-    }
-
-
+    }
 
     private boolean ValidateAndSave() {
@@ -1084,13 +999,12 @@
             } else if (selectedMethod.equals("all")) {
 
-            }else if (selectedMethod.equals("alphabetic")) {
+            } else if (selectedMethod.equals("alphabetic")) {
                 errorMessage = ValidateAlphaAddress(startValueString, endValueString);
 
-            }else if (selectedMethod.equals("Numeric")) {
+            } else if (selectedMethod.equals("Numeric")) {
 
                 if (!ValidNumericIncrementString(incrementString, startAddr, endAddr)) {
                     errorMessage = tr("Expected valid number for increment");
                 }
-
             }
             if (!errorMessage.equals("")) {
@@ -1125,5 +1039,4 @@
                 currentDataSet.clearSelection(lastNode);  // Workaround for JOSM Bug #3838
             }
-
 
             String interpolationTagValue = selectedMethod;
@@ -1151,6 +1064,4 @@
         }
 
-
-
         if (streetRelationButton.isSelected()) {
 
@@ -1167,5 +1078,4 @@
             }
         }
-
 
         // For all nodes, add to relation and
@@ -1199,5 +1109,4 @@
     }
 
-
     private boolean ValidNumericIncrementString(String incrementString, long startingAddr, long endingAddr) {
 
@@ -1215,6 +1124,4 @@
         return true;
     }
-
-
 
     // Create Associated Street relation, add street, and add to list of commands to perform
@@ -1228,6 +1135,4 @@
     }
 
-
-
     // Read from dialog text box, removing leading and trailing spaces
     // Return the string, or null for a zero length string
@@ -1243,5 +1148,4 @@
     }
 
-
     // Test if relation contains specified member
     //   If not already present, it is added
@@ -1263,6 +1167,4 @@
         }
     }
-
-
 
     // Check alphabetic style address
@@ -1316,11 +1218,8 @@
                 errorMessage = tr("Starting address letter must be less than ending address letter");
             }
-
         }
 
         return errorMessage;
     }
-
-
 
     // Convert string addresses to numeric, with error check
@@ -1353,11 +1252,8 @@
     }
 
-
-
     private String GetInterpolationMethod() {
         int selectedIndex = addrInterpolationList.getSelectedIndex();
         return addrInterpolationTags[selectedIndex];
     }
-
 
     private String GetInclusionMethod() {
@@ -1366,12 +1262,3 @@
         return addrInclusionTags[selectedIndex];
     }
-
-
-
-
-
-
-
 }
-
-
Index: applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CadastreInterface.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CadastreInterface.java	(revision 30531)
+++ applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CadastreInterface.java	(revision 30532)
@@ -414,5 +414,5 @@
             communeList[i + 1] = listOfCommunes.elementAt(i).substring(listOfCommunes.elementAt(i).indexOf(">")+1);
         }
-        JComboBox inputCommuneList = new JComboBox(communeList);
+        JComboBox<String> inputCommuneList = new JComboBox<>(communeList);
         p.add(inputCommuneList, GBC.eol().fill(GBC.HORIZONTAL).insets(10, 0, 0, 0));
         JOptionPane pane = new JOptionPane(p, JOptionPane.INFORMATION_MESSAGE, JOptionPane.OK_CANCEL_OPTION, null) {
@@ -432,9 +432,9 @@
     private int selectFeuilleDialog() {
         JPanel p = new JPanel(new GridBagLayout());
-        Vector<String> ImageNames = new Vector<String>();
+        Vector<String> imageNames = new Vector<String>();
         for (PlanImage src : listOfFeuilles) {
-            ImageNames.add(src.name);
-        }
-        JComboBox inputFeuilleList = new JComboBox(ImageNames);
+            imageNames.add(src.name);
+        }
+        JComboBox<String> inputFeuilleList = new JComboBox<>(imageNames);
         p.add(inputFeuilleList, GBC.eol().fill(GBC.HORIZONTAL).insets(10, 0, 0, 0));
         JOptionPane pane = new JOptionPane(p, JOptionPane.INFORMATION_MESSAGE, JOptionPane.OK_CANCEL_OPTION, null);
Index: applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CadastrePreferenceSetting.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CadastrePreferenceSetting.java	(revision 30531)
+++ applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CadastrePreferenceSetting.java	(revision 30532)
@@ -37,5 +37,5 @@
     private JCheckBox drawBoundaries = new JCheckBox(tr("Draw boundaries of downloaded data."));
 
-    private JComboBox imageInterpolationMethod = new JComboBox();
+    private JComboBox<String> imageInterpolationMethod = new JComboBox<>();
 
     private JCheckBox disableImageCropping = new JCheckBox(tr("Disable image cropping during georeferencing."));
@@ -95,4 +95,7 @@
     static final String DEFAULT_GRAB_MULTIPLIER = Scale.SQUARE_100M.value;
 
+    /**
+     * Constructs a new {@code CadastrePreferenceSetting}.
+     */
     public CadastrePreferenceSetting() {
         super("cadastrewms.gif", I18n.tr("French cadastre WMS"),
@@ -104,5 +107,4 @@
         );
     }
-
 
     public void addGui(final PreferenceTabbedPane gui) {
Index: applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CheckSourceUploadHook.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CheckSourceUploadHook.java	(revision 30531)
+++ applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CheckSourceUploadHook.java	(revision 30532)
@@ -32,6 +32,4 @@
 public class CheckSourceUploadHook implements UploadHook
 {
-    /** Serializable ID */
-    private static final long serialVersionUID = -1;
 
     /**
@@ -82,5 +80,5 @@
             JTextField tf = new JTextField(CadastrePlugin.source);
             p.add(tf, GBC.eol());
-            JList l = new JList(sel.toArray());
+            JList<OsmPrimitive> l = new JList<>(sel.toArray(new OsmPrimitive[0]));
             l.setCellRenderer(renderer);
             l.setVisibleRowCount(l.getModel().getSize() < 6 ? l.getModel().getSize() : 10);
@@ -91,6 +89,4 @@
                 Main.main.undoRedo.add(new ChangePropertyCommand(sel, "source", tf.getText()));
         }
-
     }
 }
-
Index: applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/MenuActionNewLocation.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/MenuActionNewLocation.java	(revision 30531)
+++ applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/MenuActionNewLocation.java	(revision 30532)
@@ -69,5 +69,5 @@
                 + "Use the syntax and punctuation known by www.cadastre.gouv.fr .</html>"));
         JLabel labelDepartement =  new JLabel(tr("Departement"));
-        final JComboBox inputDepartement = new JComboBox();
+        final JComboBox<String> inputDepartement = new JComboBox<>();
         for (int i=1; i<departements.length; i+=2) {
             inputDepartement.addItem(departements[i]);
Index: applications/editors/josm/plugins/colorscheme/src/at/dallermassl/josm/plugin/colorscheme/ColorSchemePreference.java
===================================================================
--- applications/editors/josm/plugins/colorscheme/src/at/dallermassl/josm/plugin/colorscheme/ColorSchemePreference.java	(revision 30531)
+++ applications/editors/josm/plugins/colorscheme/src/at/dallermassl/josm/plugin/colorscheme/ColorSchemePreference.java	(revision 30532)
@@ -39,6 +39,6 @@
     private static final String PREF_KEY_SCHEMES_NAMES = PREF_KEY_SCHEMES_PREFIX + "names";
     public static final String PREF_KEY_COLOR_PREFIX = "color.";
-    private JList schemesList;
-    private DefaultListModel listModel;
+    private JList<String> schemesList;
+    private DefaultListModel<String> listModel;
     private List<String>colorKeys;
     private ColorPreference colorPreference;
@@ -50,8 +50,4 @@
     }
 
-
-    /* (non-Javadoc)
-     * @see org.openstreetmap.josm.gui.preferences.PreferenceSetting#addGui(org.openstreetmap.josm.gui.preferences.PreferenceDialog)
-     */
     @Override
     public void addGui(final PreferenceTabbedPane gui) {
@@ -62,6 +58,6 @@
         colorKeys = new ArrayList<String>(colorMap.keySet());
         Collections.sort(colorKeys);
-        listModel = new DefaultListModel();
-        schemesList = new JList(listModel);
+        listModel = new DefaultListModel<>();
+        schemesList = new JList<>(listModel);
         String schemes = Main.pref.get(PREF_KEY_SCHEMES_NAMES);
         StringTokenizer st = new StringTokenizer(schemes, ";");
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/Preferences.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/Preferences.java	(revision 30531)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/Preferences.java	(revision 30532)
@@ -2,5 +2,16 @@
 
 
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.GroupLayout;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
 import javax.swing.JPanel;
+import javax.swing.JTextField;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
 
 import org.openstreetmap.josm.Main;
@@ -70,23 +81,23 @@
     private void initComponents() {
 
-        mainPanel = new javax.swing.JPanel();
-        addNewTagCheckBox = new javax.swing.JCheckBox();
-        addNewTagKeyField = new javax.swing.JTextField();
-        jLabel1 = new javax.swing.JLabel();
-        addNewTagValueField = new javax.swing.JTextField();
-        jLabel2 = new javax.swing.JLabel();
-        optimizeComboBox = new javax.swing.JComboBox();
-        buildingCheckBox = new javax.swing.JCheckBox();
+        mainPanel = new JPanel();
+        addNewTagCheckBox = new JCheckBox();
+        addNewTagKeyField = new JTextField();
+        jLabel1 = new JLabel();
+        addNewTagValueField = new JTextField();
+        jLabel2 = new JLabel();
+        optimizeComboBox = new JComboBox<>();
+        buildingCheckBox = new JCheckBox();
 
         thisPanel.setLayout(new java.awt.GridLayout(1, 0));
 
         addNewTagCheckBox.setText("Novým primitivám přidávat tag:");
-        addNewTagCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
-            public void stateChanged(javax.swing.event.ChangeEvent evt) {
+        addNewTagCheckBox.addChangeListener(new ChangeListener() {
+            public void stateChanged(ChangeEvent evt) {
                 addNewTagChanged(evt);
             }
         });
-        addNewTagCheckBox.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
+        addNewTagCheckBox.addActionListener(new ActionListener() {
+            public void actionPerformed(ActionEvent evt) {
                 addNewTagCheckBoxActionPerformed(evt);
             }
@@ -103,11 +114,11 @@
         jLabel2.setText("Optimalizovat algoritmus přiřazování:");
 
-        optimizeComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "pro rychlejší odezvu", "menší spotřebu paměti" }));
+        optimizeComboBox.setModel(new DefaultComboBoxModel<>(new String[] { "pro rychlejší odezvu", "menší spotřebu paměti" }));
         optimizeComboBox.setSelectedIndex(1);
         optimizeComboBox.setEnabled(false);
 
         buildingCheckBox.setText("Nově polygonům přidávat tag \"building=yes\"");
-        buildingCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
-            public void stateChanged(javax.swing.event.ChangeEvent evt) {
+        buildingCheckBox.addChangeListener(new ChangeListener() {
+            public void stateChanged(ChangeEvent evt) {
                 buildingCheckBoxaddNewTagChanged(evt);
             }
@@ -119,5 +130,5 @@
         });
 
-        javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
+        javax.swing.GroupLayout mainPanelLayout = new GroupLayout(mainPanel);
         mainPanel.setLayout(mainPanelLayout);
         mainPanelLayout.setHorizontalGroup(
@@ -213,5 +224,5 @@
     private javax.swing.JLabel jLabel2;
     private javax.swing.JPanel mainPanel;
-    private javax.swing.JComboBox optimizeComboBox;
+    private javax.swing.JComboBox<String> optimizeComboBox;
     // End of variables declaration//GEN-END:variables
 
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/addressdatabase/ElementWithHouses.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/addressdatabase/ElementWithHouses.java	(revision 30531)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/addressdatabase/ElementWithHouses.java	(revision 30532)
@@ -57,6 +57,3 @@
         return houses;
     }
-
-
-
 }
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/ConflictResolver.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/ConflictResolver.java	(revision 30531)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/ConflictResolver.java	(revision 30532)
@@ -87,6 +87,6 @@
         candLabel = new javax.swing.JLabel();
         mainZoomButton = new javax.swing.JButton();
-        mainField = new javax.swing.JComboBox();
-        candField = new javax.swing.JComboBox();
+        mainField = new javax.swing.JComboBox<>();
+        candField = new javax.swing.JComboBox<>();
         candPickButton = new javax.swing.JButton();
         mainPickButton = new javax.swing.JButton();
@@ -123,8 +123,8 @@
         });
 
-        mainField.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
+        mainField.setModel(new javax.swing.DefaultComboBoxModel<Object>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
         mainField.setRenderer(new UniversalListRenderer());
 
-        candField.setModel(new javax.swing.DefaultComboBoxModel(new String[] { " " }));
+        candField.setModel(new javax.swing.DefaultComboBoxModel<Object>(new String[] { " " }));
         candField.setRenderer(new UniversalListRenderer());
 
@@ -236,5 +236,5 @@
                     r.unOverwrite(prim, r.translate(prim));
 
-                ComboBoxModel model = candField.getModel();
+                ComboBoxModel<Object> model = candField.getModel();
                 for (int i = 0; i < model.getSize(); i++) {
                     AddressElement elem = (AddressElement) model.getElementAt(i);
@@ -253,5 +253,5 @@
                     r.unOverwrite(r.translate(elem), elem);
 
-                ComboBoxModel model = candField.getModel();
+                ComboBoxModel<Object> model = candField.getModel();
                 for (int i = 0; i < model.getSize(); i++) {
                     OsmPrimitive prim = (OsmPrimitive) model.getElementAt(i);
@@ -279,9 +279,9 @@
 
     // Variables declaration - do not modify//GEN-BEGIN:variables
-    private javax.swing.JComboBox candField;
+    private javax.swing.JComboBox<Object> candField;
     private javax.swing.JLabel candLabel;
     private javax.swing.JButton candPickButton;
     private javax.swing.JButton candZoomButton;
-    private javax.swing.JComboBox mainField;
+    private javax.swing.JComboBox<Object> mainField;
     private javax.swing.JLabel mainLabel;
     private javax.swing.JPanel mainPanel;
@@ -325,5 +325,5 @@
 
     private ConflictsModel conflictModel = new ConflictsModel();
-    private class ConflictsModel implements ComboBoxModel {
+    private class ConflictsModel implements ComboBoxModel<Object> {
 
         ArrayList<AddressElement> elements = new ArrayList<AddressElement>();
@@ -473,5 +473,5 @@
             conflPrims.addAll(Reasoner.getInstance().getCandidates(selElem));
             Collections.sort(conflPrims, PrimUtils.comparator);
-            candField.setModel(new CandidatesModel<OsmPrimitive>(conflPrims));
+            candField.setModel(new CandidatesModel<Object>(conflPrims));
 
         } else if (selected instanceof OsmPrimitive) {
@@ -480,8 +480,8 @@
             conflElems.addAll(Reasoner.getInstance().getCandidates(selElem));
             Collections.sort(conflElems);
-            candField.setModel(new CandidatesModel<AddressElement>(conflElems));
+            candField.setModel(new CandidatesModel<Object>(conflElems));
 
         } else {
-            candField.setModel(new DefaultComboBoxModel());
+            candField.setModel(new DefaultComboBoxModel<>());
             candZoomButton.setEnabled(false);
             reassignButton.setEnabled(false);
@@ -512,5 +512,5 @@
     }
 
-    private class CandidatesModel<E> implements ComboBoxModel {
+    private class CandidatesModel<E> implements ComboBoxModel<E> {
 
         Set<ListDataListener> listeners = new HashSet<ListDataListener>();
@@ -540,6 +540,4 @@
             } else
                 reassignButton.setEnabled(false);
-
-
         }
 
@@ -552,5 +550,5 @@
         }
 
-        public Object getElementAt(int index) {
+        public E getElementAt(int index) {
             if (index < primitives.size())
                 return primitives.get(index);
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/FactoryDialog.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/FactoryDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/FactoryDialog.java	(revision 30532)
@@ -121,5 +121,5 @@
 
         for (int i=0; i<houseModel.getSize(); i++)
-            if (houseModel.getHouseAt(i) == house) {
+            if (houseModel.getElementAt(i) == house) {
                 houseList.setSelectedIndex(i);
                 houseList.ensureIndexIsVisible(i);
@@ -159,5 +159,5 @@
         index++; // Initial kick to do at least one move.
         House current;
-        while ( (current = houseModel.getHouseAt(index))  != null
+        while ( (current = houseModel.getElementAt(index)) != null
              && Reasoner.getInstance().translate(current) != null)
             index++;
@@ -262,18 +262,18 @@
         mainPanel = new javax.swing.JPanel();
         jScrollPane1 = new javax.swing.JScrollPane();
-        houseList = new javax.swing.JList();
+        houseList = new javax.swing.JList<>();
         keepOddityCheckBox = new javax.swing.JCheckBox();
         relocateButton = new javax.swing.JButton();
-        streetComboBox = new javax.swing.JComboBox();
+        streetComboBox = new javax.swing.JComboBox<>();
 
         setLayout(new java.awt.GridLayout(1, 0));
-
-        houseList.setModel(new javax.swing.AbstractListModel() {
+/*
+        houseList.setModel(new javax.swing.AbstractListModel<String>() {
             String[] strings = { " " };
             @Override
             public int getSize() { return strings.length; }
             @Override
-            public Object getElementAt(int i) { return strings[i]; }
-        });
+            public String getElementAt(int i) { return strings[i]; }
+        });*/
         houseList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
         houseList.setEnabled(false);
@@ -349,10 +349,10 @@
 
     // Variables declaration - do not modify//GEN-BEGIN:variables
-    private javax.swing.JList houseList;
+    private javax.swing.JList<House> houseList;
     private javax.swing.JScrollPane jScrollPane1;
     private javax.swing.JCheckBox keepOddityCheckBox;
     private javax.swing.JPanel mainPanel;
     private javax.swing.JButton relocateButton;
-    private javax.swing.JComboBox streetComboBox;
+    private javax.swing.JComboBox<ElementWithHouses> streetComboBox;
     // End of variables declaration//GEN-END:variables
 
@@ -370,5 +370,5 @@
     private class StreetListRenderer extends DefaultListCellRenderer {
         @Override
-        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
+        public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
             Component c = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
 
@@ -398,5 +398,5 @@
 
         @Override
-        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
+        public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
             Component c = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
 
@@ -467,5 +467,5 @@
 //==============================================================================
 
-    private class StreetListModel extends HalfCookedComboBoxModel {
+    private class StreetListModel extends HalfCookedComboBoxModel<ElementWithHouses> {
 
         private ElementWithHouses selected = null;
@@ -499,5 +499,5 @@
 
         @Override
-        public Object getElementAt(int index) {
+        public ElementWithHouses getElementAt(int index) {
             if (parent == null) return null;
 
@@ -528,5 +528,5 @@
 //==============================================================================
 
-    private class HouseListModel extends HalfCookedListModel
+    private class HouseListModel extends HalfCookedListModel<House>
                                  implements ReasonerListener {
 
@@ -544,5 +544,6 @@
         }
 
-        public House getHouseAt(int index) {
+        @Override
+        public House getElementAt(int index) {
             if (streetComboBox.getSelectedItem() == null) return null;
             ElementWithHouses selected
@@ -555,9 +556,4 @@
 
         @Override
-        public Object getElementAt(int index) {
-            return getHouseAt(index);
-        }
-
-        @Override
         public void primitiveChanged(OsmPrimitive prim) {}
         @Override
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/LocationSelector.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/LocationSelector.java	(revision 30531)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/LocationSelector.java	(revision 30532)
@@ -66,5 +66,5 @@
         initLocationHints();
 
-        DefaultComboBoxModel regions = new DefaultComboBoxModel(Database.getInstance().regions.toArray());
+        DefaultComboBoxModel<Region> regions = new DefaultComboBoxModel<>(Database.getInstance().regions.toArray(new Region[0]));
         regionHlIndex = reshuffleListItems(regions, hlRegions);
         oblastComboBox.setModel(regions);
@@ -173,11 +173,10 @@
     * beginning, return number of moved items.
     */
-
-    private int reshuffleListItems(DefaultComboBoxModel list, final ArrayList<AddressElement> hlList) {
+    private <E> int reshuffleListItems(DefaultComboBoxModel<E> list, final ArrayList<AddressElement> hlList) {
         int curHlIndex = 0;
 
         for (int i = 0; i < list.getSize(); i++)
             for (int j = 0; j < hlList.size(); j++) {
-                Object t = list.getElementAt(i);
+                E t = list.getElementAt(i);
                 if (t == hlList.get(j)) {
                     list.removeElementAt(i);
@@ -199,7 +198,7 @@
 
         mainPanel = new javax.swing.JPanel();
-        oblastComboBox = new javax.swing.JComboBox();
-        suburbComboBox = new javax.swing.JComboBox();
-        vitociComboBox = new javax.swing.JComboBox();
+        oblastComboBox = new javax.swing.JComboBox<>();
+        suburbComboBox = new javax.swing.JComboBox<>();
+        vitociComboBox = new javax.swing.JComboBox<>();
         obecLabel = new javax.swing.JLabel();
         castObceLabel = new javax.swing.JLabel();
@@ -298,5 +297,5 @@
         if (oblast == null) return;
 
-        DefaultComboBoxModel vitocis = new DefaultComboBoxModel(oblast.getViToCis().toArray());
+        DefaultComboBoxModel<ViToCi> vitocis = new DefaultComboBoxModel<>(oblast.getViToCis().toArray(new ViToCi[0]));
         vitociHlIndex = reshuffleListItems(vitocis, hlViToCis);
         vitociComboBox.setModel(vitocis);
@@ -312,14 +311,14 @@
 
         if (obec.getSuburbs().size() > 0) {
-            Object[] suburbs = new Object[obec.getSuburbs().size() + 1];
+            ElementWithStreets[] suburbs = new ElementWithStreets[obec.getSuburbs().size() + 1];
             for (int i=0; i<obec.getSuburbs().size(); i++)
                 suburbs[i] = obec.getSuburbs().get(i);
             suburbs[obec.getSuburbs().size()] = obec;
-            DefaultComboBoxModel suburbsList = new DefaultComboBoxModel(suburbs);
+            DefaultComboBoxModel<ElementWithStreets> suburbsList = new DefaultComboBoxModel<>(suburbs);
             suburbHlIndex = reshuffleListItems(suburbsList, hlSuburbs);
             suburbComboBox.setModel(suburbsList);
             suburbComboBox.setSelectedItem(suburbsList.getElementAt(0));
         } else
-            suburbComboBox.setModel(new DefaultComboBoxModel());
+            suburbComboBox.setModel(new DefaultComboBoxModel<ElementWithStreets>());
 
         suburbComboBox.setEnabled(suburbComboBox.getModel().getSize() > 1);
@@ -353,8 +352,8 @@
     private javax.swing.JPanel mainPanel;
     private javax.swing.JLabel obecLabel;
-    private javax.swing.JComboBox oblastComboBox;
+    private javax.swing.JComboBox<Region> oblastComboBox;
     private javax.swing.JLabel oblastLabel;
-    private javax.swing.JComboBox suburbComboBox;
-    private javax.swing.JComboBox vitociComboBox;
+    private javax.swing.JComboBox<ElementWithStreets> suburbComboBox;
+    private javax.swing.JComboBox<ViToCi> vitociComboBox;
     // End of variables declaration//GEN-END:variables
 
@@ -362,5 +361,5 @@
         @Override
         public Component getListCellRendererComponent(
-                    JList list, Object value, int index,
+                    JList<?> list, Object value, int index,
                     boolean isSelected, boolean cellHasFocus) {
 
@@ -383,5 +382,5 @@
     private class SuburbRenderer extends AddressElementRenderer {
         @Override
-        public Component getListCellRendererComponent(JList list, Object value,
+        public Component getListCellRendererComponent(JList<?> list, Object value,
                           int index, boolean isSelected, boolean cellHasFocus) {
             Component c = super.getListCellRendererComponent(list, value,
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/PointManipulatorDialog.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/PointManipulatorDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/PointManipulatorDialog.java	(revision 30532)
@@ -197,6 +197,6 @@
         changeLocationButton = new javax.swing.JButton();
         jScrollPane1 = new javax.swing.JScrollPane();
-        proposalList = new javax.swing.JList();
-        matchesComboBox = new javax.swing.JComboBox();
+        proposalList = new javax.swing.JList<>();
+        matchesComboBox = new javax.swing.JComboBox<>();
         jLabel6 = new javax.swing.JLabel();
         statusLabel = new javax.swing.JLabel();
@@ -236,5 +236,5 @@
         jScrollPane1.setViewportView(proposalList);
 
-        matchesComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "" }));
+        //matchesComboBox.setModel(new javax.swing.DefaultComboBoxModel<String>(new String[] { "" }));
         matchesComboBox.addItemListener(new java.awt.event.ItemListener() {
             public void itemStateChanged(java.awt.event.ItemEvent evt) {
@@ -307,5 +307,5 @@
     private void proposalListKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_proposalListKeyReleased
         if (evt.getKeyCode() == KeyEvent.VK_DELETE) {
-            for (Object o : proposalList.getSelectedValues())
+            for (Object o : proposalList.getSelectedValuesList())
                 proposalContainer.removeProposal((Proposal) o);
         }
@@ -341,6 +341,6 @@
     private javax.swing.JTextField locationEdit;
     private javax.swing.JPanel mainPanel;
-    private javax.swing.JComboBox matchesComboBox;
-    private javax.swing.JList proposalList;
+    private javax.swing.JComboBox<AddressElement> matchesComboBox;
+    private javax.swing.JList<Proposal> proposalList;
     private javax.swing.JLabel statusLabel;
     // End of variables declaration//GEN-END:variables
@@ -349,5 +349,5 @@
      * Container for all Houses, which match the given 'alternatenumber'.
      */
-    private class MatchesComboBoxModel extends HalfCookedComboBoxModel {
+    private class MatchesComboBoxModel extends HalfCookedComboBoxModel<AddressElement> {
 
         private List<AddressElement> matches = null;
@@ -379,5 +379,5 @@
         }
 
-        public Object getElementAt(int index) {
+        public AddressElement getElementAt(int index) {
             if (matches == null) return null;
             if (index >= matches.size()) return null;
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/databaseeditors/StreetEditor.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/databaseeditors/StreetEditor.java	(revision 30531)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/databaseeditors/StreetEditor.java	(revision 30532)
@@ -37,5 +37,5 @@
 
         nameField.setText(street.getName());
-        houseList.setModel(new DefaultComboBoxModel(street.getHouses().toArray()));
+        houseList.setModel(new DefaultComboBoxModel<>(street.getHouses().toArray(new House[0])));
         houseList.setCellRenderer(new UniversalListRenderer());
 
@@ -72,5 +72,5 @@
         jLabel3 = new javax.swing.JLabel();
         jScrollPane1 = new javax.swing.JScrollPane();
-        houseList = new javax.swing.JList();
+        houseList = new javax.swing.JList<>();
         parentEditButton = new javax.swing.JButton();
         houseEditButton = new javax.swing.JButton();
@@ -163,5 +163,5 @@
         assert selectedHouse != null;
         if (EditorFactory.editHouse(selectedHouse))
-            houseList.setModel(new DefaultComboBoxModel(street.getHouses().toArray()));
+            houseList.setModel(new DefaultComboBoxModel<>(street.getHouses().toArray(new House[0])));
     }//GEN-LAST:event_houseEditButtonActionPerformed
 
@@ -175,5 +175,5 @@
     // Variables declaration - do not modify//GEN-BEGIN:variables
     private javax.swing.JButton houseEditButton;
-    private javax.swing.JList houseList;
+    private javax.swing.JList<House> houseList;
     private javax.swing.JLabel jLabel1;
     private javax.swing.JLabel jLabel2;
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/databaseeditors/SuburbEditor.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/databaseeditors/SuburbEditor.java	(revision 30531)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/databaseeditors/SuburbEditor.java	(revision 30532)
@@ -39,5 +39,5 @@
         parentEditButton.setEnabled(EditorFactory.isEditable(parent));
 
-        houseList.setModel(new DefaultComboBoxModel(suburb.getHouses().toArray()));
+        houseList.setModel(new DefaultComboBoxModel<>(suburb.getHouses().toArray(new House[0])));
         houseList.setCellRenderer(new UniversalListRenderer());
 
@@ -46,5 +46,5 @@
         houseListChanged(null);
 
-        streetList.setModel(new DefaultComboBoxModel(suburb.getStreets().toArray()));
+        streetList.setModel(new DefaultComboBoxModel<>(suburb.getStreets().toArray(new Street[0])));
         streetList.setCellRenderer(new UniversalListRenderer());
 
@@ -81,9 +81,9 @@
         jLabel3 = new javax.swing.JLabel();
         jScrollPane1 = new javax.swing.JScrollPane();
-        houseList = new javax.swing.JList();
+        houseList = new javax.swing.JList<>();
         parentEditButton = new javax.swing.JButton();
         houseEditButton = new javax.swing.JButton();
         jScrollPane2 = new javax.swing.JScrollPane();
-        streetList = new javax.swing.JList();
+        streetList = new javax.swing.JList<>();
         streetEditButton = new javax.swing.JButton();
         jLabel4 = new javax.swing.JLabel();
@@ -212,5 +212,5 @@
         assert selectedHouse != null;
         if (EditorFactory.editHouse(selectedHouse))
-            houseList.setModel(new DefaultComboBoxModel(suburb.getHouses().toArray()));
+            houseList.setModel(new DefaultComboBoxModel<>(suburb.getHouses().toArray(new House[0])));
 }//GEN-LAST:event_houseEditButtonActionPerformed
 
@@ -223,5 +223,5 @@
         assert selectedStreet != null;
         if (EditorFactory.editStreet(selectedStreet))
-            streetList.setModel(new DefaultComboBoxModel(suburb.getStreets().toArray()));
+            streetList.setModel(new DefaultComboBoxModel<>(suburb.getStreets().toArray(new Street[0])));
     }//GEN-LAST:event_streetEditButtonActionPerformed
 
@@ -229,5 +229,5 @@
     // Variables declaration - do not modify//GEN-BEGIN:variables
     private javax.swing.JButton houseEditButton;
-    private javax.swing.JList houseList;
+    private javax.swing.JList<House> houseList;
     private javax.swing.JLabel jLabel1;
     private javax.swing.JLabel jLabel2;
@@ -242,5 +242,5 @@
     private javax.swing.JTextField parentField;
     private javax.swing.JButton streetEditButton;
-    private javax.swing.JList streetList;
+    private javax.swing.JList<Street> streetList;
     // End of variables declaration//GEN-END:variables
 
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/utils/HalfCookedComboBoxModel.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/utils/HalfCookedComboBoxModel.java	(revision 30531)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/utils/HalfCookedComboBoxModel.java	(revision 30532)
@@ -16,12 +16,14 @@
  * @author Radomír Černoch, radomir.cernoch@gmail.com
  */
-public abstract class HalfCookedComboBoxModel implements ComboBoxModel {
+public abstract class HalfCookedComboBoxModel<E> implements ComboBoxModel<E> {
 
     List<ListDataListener> listeners = new ArrayList<ListDataListener>();
 
+    @Override
     public void addListDataListener(ListDataListener l) {
         listeners.add(l);
     }
 
+    @Override
     public void removeListDataListener(ListDataListener l) {
         listeners.remove(l);
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/utils/HalfCookedListModel.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/utils/HalfCookedListModel.java	(revision 30531)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/gui/utils/HalfCookedListModel.java	(revision 30532)
@@ -16,12 +16,14 @@
  * @author Radomír Černoch, radomir.cernoch@gmail.com
  */
-public abstract class HalfCookedListModel implements ListModel {
+public abstract class HalfCookedListModel<E> implements ListModel<E> {
 
     List<ListDataListener> listeners = new ArrayList<ListDataListener>();
 
+    @Override
     public void addListDataListener(ListDataListener l) {
         listeners.add(l);
     }
 
+    @Override
     public void removeListDataListener(ListDataListener l) {
         listeners.remove(l);
Index: applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/proposal/ProposalContainer.java
===================================================================
--- applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/proposal/ProposalContainer.java	(revision 30531)
+++ applications/editors/josm/plugins/czechaddress/src/org/openstreetmap/josm/plugins/czechaddress/proposal/ProposalContainer.java	(revision 30532)
@@ -23,6 +23,5 @@
  * @see Proposal
  */
-public class ProposalContainer implements ListModel, Comparable<ProposalContainer> {
-
+public class ProposalContainer implements ListModel<Proposal>, Comparable<ProposalContainer> {
 
     /**
@@ -65,6 +64,5 @@
      * The list of proposals to be applied to encapsulated primitive.
      */
-    protected List<Proposal> proposals
-            = new ArrayList<Proposal>();
+    protected List<Proposal> proposals = new ArrayList<Proposal>();
 
     /**
@@ -184,23 +182,27 @@
     }
 
+    @Override
     public int getSize() {
         return proposals.size();
     }
 
-    public Object getElementAt(int index) {
+    @Override
+    public Proposal getElementAt(int index) {
         return proposals.get(index);
     }
 
+    @Override
     public void addListDataListener(ListDataListener l) {
         listeners.add(l);
     }
 
+    @Override
     public void removeListDataListener(ListDataListener l) {
         listeners.remove(l);
     }
 
+    @Override
     public int compareTo(ProposalContainer o) {
         return PrimUtils.comparator.compare(this.target, o.target);
     }
-
 }
Index: applications/editors/josm/plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/GPXLayerImportAction.java
===================================================================
--- applications/editors/josm/plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/GPXLayerImportAction.java	(revision 30531)
+++ applications/editors/josm/plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/GPXLayerImportAction.java	(revision 30532)
@@ -37,6 +37,4 @@
 class GPXLayerImportAction extends AbstractAction {
 
-
-    private static final long serialVersionUID = 5794897888911798168L;
     private EditGpxData data;
     public Object importing = new Object(); //used for synchronization
@@ -54,7 +52,7 @@
     public void activateImport() {
         Box panel = Box.createVerticalBox();
-        DefaultListModel dModel= new DefaultListModel();
+        DefaultListModel<GpxLayer> dModel = new DefaultListModel<>();
 
-        final JList layerList = new JList(dModel);
+        final JList<GpxLayer> layerList = new JList<>(dModel);
         Collection<Layer> data = Main.map.mapView.getAllLayers();
         int layerCnt = 0;
@@ -62,5 +60,5 @@
         for (Layer l : data){
             if(l instanceof GpxLayer){
-                dModel.addElement(l);
+                dModel.addElement((GpxLayer) l);
                 layerCnt++;
             }
@@ -69,5 +67,5 @@
             layerList.setSelectionInterval(0, layerCnt-1);
             layerList.setCellRenderer(new DefaultListCellRenderer(){
-                @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
+                @Override public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
                     Layer layer = (Layer)value;
                     JLabel label = (JLabel)super.getListCellRendererComponent(list,
@@ -104,6 +102,5 @@
             }
             synchronized(importing) {
-                for (Object o : layerList.getSelectedValues()) {
-                    GpxLayer gpx = (GpxLayer )o;
+                for (GpxLayer gpx : layerList.getSelectedValuesList()) {
                     this.data.load(gpx.data);
                 }
Index: applications/editors/josm/plugins/globalsat/src/org/kaintoch/gps/globalsat/dg100/Response.java
===================================================================
--- applications/editors/josm/plugins/globalsat/src/org/kaintoch/gps/globalsat/dg100/Response.java	(revision 30531)
+++ applications/editors/josm/plugins/globalsat/src/org/kaintoch/gps/globalsat/dg100/Response.java	(revision 30532)
@@ -12,5 +12,5 @@
  *
  */
-public class Response
+public class Response<E>
 {
     final static public byte typeFileInfo = (byte)0xBB;
@@ -23,5 +23,5 @@
     private int nextIdx = 0;
     private Dg100Config config = null;
-    private List data = new ArrayList(100);
+    private List<E> data = new ArrayList<>(100);
     private long id = 0;
 
@@ -35,12 +35,12 @@
      * @param resp
      */
-    static public Response parseResponse(byte resp[], int len)
+    static public Response<?> parseResponse(byte resp[], int len)
     {
         ByteBuffer buf = ByteBuffer.wrap(resp);
         byte respType = buf.get(4);
-        Response response = new Response(respType);
         buf.position(5);
         if (respType == typeFileInfo) // file info
         {
+            Response<FileInfoRec> response = new Response<>(respType);
             int cntInfoCur = buf.getShort();
             int nextIdx = buf.getShort();
@@ -52,7 +52,9 @@
                 response.addRec(fileInfoRec);
             }
+            return response;
         }
         else if (respType == typeGpsRec) // gps recs
         {
+            Response<GpsRec> response = new Response<>(respType);
             int recType = 2;
             // read part 1
@@ -85,12 +87,16 @@
                 recType = gpsRec.getDg100TypeOfNextRec();
             }
+            return response;
         }
         else if (respType == typeConfig) // config
         {
+            Response<?> response = new Response<>(respType);
             Dg100Config config = new Dg100Config(buf);
             response.config = config;
+            return response;
         }
         else if (respType == typeId) // id
         {
+            Response<?> response = new Response<>(respType);
             response.id = 0;
             for (int ii = 0 ; ii < 8 ; ++ii)
@@ -99,17 +105,18 @@
                 response.id = response.id * 10 + digit;
             }
+            return response;
         }
         else
         {
+            return new Response<>(respType);
         }
-        return response;
     }
 
-    private void addRec(Object obj)
+    private void addRec(E obj)
     {
         data.add(obj);
     }
 
-    public List getRecs()
+    public List<E> getRecs()
     {
         return data;
Index: applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatConfigDialog.java
===================================================================
--- applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatConfigDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatConfigDialog.java	(revision 30532)
@@ -5,5 +5,4 @@
 
 import static org.openstreetmap.josm.tools.I18n.tr;
-import gnu.io.CommPortIdentifier;
 
 import java.awt.Dimension;
@@ -13,11 +12,8 @@
 import java.awt.event.ActionListener;
 import java.awt.event.KeyEvent;
-import java.util.LinkedList;
-import java.util.List;
 
 import javax.swing.BoxLayout;
 import javax.swing.ButtonGroup;
 import javax.swing.JCheckBox;
-import javax.swing.JComboBox;
 import javax.swing.JLabel;
 import javax.swing.JOptionPane;
@@ -28,5 +24,4 @@
 import org.kaintoch.gps.globalsat.dg100.Dg100Config;
 import org.openstreetmap.josm.Main;
-
 
 /**
@@ -55,10 +50,4 @@
     }
 
-
-
-    // the JOptionPane that contains this dialog. required for the closeDialog() method.
-    private JOptionPane optionPane;
-    private JCheckBox delete;
-    private JComboBox portCombo;
     private JRadioButton formatPosOnly = new JRadioButton(tr("Position only"));
     private JRadioButton formatPosTDS = new JRadioButton(tr("Position, Time, Date, Speed"));
@@ -79,13 +68,8 @@
     private JTextField cMeters = new IntegerTextField();
 
-    private JLabel memUsage = new JLabel();
-
     private JCheckBox disableLogDist, disableLogSpeed;
     private JTextField minLogDist, minLogSpeed;
 
-    private List<CommPortIdentifier> ports = new LinkedList<CommPortIdentifier>();
-
     private Dg100Config conf;
-
 
     public GlobalsatConfigDialog(Dg100Config config) {
@@ -326,12 +310,4 @@
 
     /**
-     * Has to be called after this dialog has been added to a JOptionPane.
-     * @param optionPane
-     */
-    public void setOptionPane(JOptionPane optionPane) {
-        this.optionPane = optionPane;
-    }
-
-    /**
      * Get the selected configuration.
      */
Index: applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatDg100.java
===================================================================
--- applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatDg100.java	(revision 30531)
+++ applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatDg100.java	(revision 30532)
@@ -50,5 +50,5 @@
 
     /** delete file: A0 A2 00 02 BC 01 00 BD B0 B3 */
-    private static byte dg100CmdSwitch2Nmea[] =
+    /*private static byte dg100CmdSwitch2Nmea[] =
     { (byte) 0xA0, (byte) 0xA2, (byte) 0x00, (byte) 0x18, (byte) 0x81,
       (byte) 0x02, (byte) 0x01, (byte) 0x01, (byte) 0x00, (byte) 0x01,
@@ -58,10 +58,10 @@
       (byte) 0x00, (byte) 0x25, (byte) 0x80, (byte) 0x00, (byte) 0x00,
       (byte) 0xB0, (byte) 0xB3
-    };
+    };*/
     /** delete file: A0 A2 00 02 BC 01 00 BD B0 B3 */
-    private static byte dg100CmdEnterGMouse[] =
+    /*private static byte dg100CmdEnterGMouse[] =
     { (byte) 0xA0, (byte) 0xA2, (byte) 0x00, (byte) 0x02, (byte) 0xBC
       , (byte) 0x01, (byte) 0x00, (byte) 0xBD, (byte) 0xB0, (byte) 0xB3
-    };
+    };*/
     /** delete file: A0 A2 00 03 BA FF FF 02 B8 B0 B3 */
     private static byte dg100CmdDelFile[] =
@@ -104,13 +104,13 @@
     };
     /** read config: A0 A2 00 01 BF 00 BF B0 B3 */
-    private static byte dg100CmdGetId[] =
+    /*private static byte dg100CmdGetId[] =
     { (byte) 0xA0, (byte) 0xA2, (byte) 0x00, (byte) 0x01, (byte) 0xBF
-      , (byte) 0x00, (byte) 0xBF, (byte) 0xB0, (byte) 0xB3 };
+      , (byte) 0x00, (byte) 0xBF, (byte) 0xB0, (byte) 0xB3 };*/
     /** read config: A0 A2 00 01 BF 00 BF B0 B3 */
-    private static byte dg100CmdSetId[] =
+    /*private static byte dg100CmdSetId[] =
     { (byte) 0xA0, (byte) 0xA2, (byte) 0x00, (byte) 0x09, (byte) 0xC0
       , (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00
       , (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00
-      , (byte) 0x00, (byte) 0xC0, (byte) 0xB0, (byte) 0xB3};
+      , (byte) 0x00, (byte) 0xC0, (byte) 0xB0, (byte) 0xB3};*/
 
     private byte[] response = new byte[65536];
@@ -187,5 +187,5 @@
         }
         try{
-            Response response = sendCmdDelFiles();
+            sendCmdDelFiles();
         }catch(Exception e){
             throw new ConnectionException(e);
@@ -220,5 +220,5 @@
         try{
             do{
-                Response response = sendCmdGetFileInfo(nextIdx);
+                Response<FileInfoRec> response = sendCmdGetFileInfo(nextIdx);
                 nextIdx = response.getNextIdx();
                 result.addAll(response.getRecs());
@@ -232,11 +232,9 @@
     public List<GpsRec> readGpsRecList(List<FileInfoRec> fileInfoList) throws ConnectionException
     {
-        int cnt = 0;
         List<GpsRec> result = new ArrayList<GpsRec>(200);
 
         try{
             for(FileInfoRec fileInfoRec:fileInfoList){
-                cnt++;
-                Response response = sendCmdGetGpsRecs(fileInfoRec.getIdx());
+                Response<GpsRec> response = sendCmdGetGpsRecs(fileInfoRec.getIdx());
                 result.addAll(response.getRecs());
             }
@@ -247,5 +245,5 @@
     }
 
-    private Response sendCmdDelFiles() throws IOException, UnsupportedCommOperationException
+    private Response<?> sendCmdDelFiles() throws IOException, UnsupportedCommOperationException
     {
         System.out.println("deleting data...");
@@ -254,5 +252,6 @@
     }
 
-    private Response sendCmdGetFileInfo(int idx) throws IOException, UnsupportedCommOperationException
+    @SuppressWarnings("unchecked")
+    private Response<FileInfoRec> sendCmdGetFileInfo(int idx) throws IOException, UnsupportedCommOperationException
     {
         byte[] src = dg100CmdGetFileInfo;
@@ -262,8 +261,8 @@
         updateCheckSum(buf);
         int len = sendCmd(src, response, -1);
-        return Response.parseResponse(response, len);
-    }
-
-    private Response sendCmdGetConfig() throws IOException, UnsupportedCommOperationException
+        return (Response<FileInfoRec>) Response.parseResponse(response, len);
+    }
+
+    private Response<?> sendCmdGetConfig() throws IOException, UnsupportedCommOperationException
     {
         byte[] src = dg100CmdGetConfig;
@@ -277,11 +276,9 @@
                 connect();
             }
-            Response response = sendCmdGetConfig();
-            return response.getConfig();
+            return sendCmdGetConfig().getConfig();
         }catch(Exception e){
             throw new ConnectionException(e);
         }
     }
-
 
     private void sendCmdSetConfig(Dg100Config config) throws IOException, UnsupportedCommOperationException
@@ -310,5 +307,6 @@
     }
 
-    private Response sendCmdGetGpsRecs(int idx) throws IOException, UnsupportedCommOperationException
+    @SuppressWarnings("unchecked")
+    private Response<GpsRec> sendCmdGetGpsRecs(int idx) throws IOException, UnsupportedCommOperationException
     {
         byte[] src = dg100CmdGetGpsRecs;
@@ -318,5 +316,5 @@
         updateCheckSum(buf);
         int len = sendCmd(src, response, 2074);
-        return Response.parseResponse(response, len);
+        return (Response<GpsRec>) Response.parseResponse(response, len);
     }
 
Index: applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatImportDialog.java
===================================================================
--- applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatImportDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatImportDialog.java	(revision 30532)
@@ -10,6 +10,4 @@
 import java.awt.event.ActionListener;
 import java.util.Enumeration;
-import java.util.LinkedList;
-import java.util.List;
 
 import javax.swing.JButton;
@@ -33,9 +31,6 @@
 public class GlobalsatImportDialog extends JPanel {
 
-    // the JOptionPane that contains this dialog. required for the closeDialog() method.
-    private JOptionPane optionPane;
     private JCheckBox delete;
-    private JComboBox portCombo;
-    private List<CommPortIdentifier> ports = new LinkedList<CommPortIdentifier>();
+    private JComboBox<CommPortIdentifier> portCombo;
 
     public GlobalsatImportDialog() {
@@ -45,8 +40,8 @@
         setLayout(new GridBagLayout());
 
-        portCombo = new JComboBox();
-        portCombo.setRenderer(new ListCellRenderer(){
-                public java.awt.Component getListCellRendererComponent(JList list, Object o, int x, boolean a, boolean b){
-                    String value = ((CommPortIdentifier)o).getName();
+        portCombo = new JComboBox<>();
+        portCombo.setRenderer(new ListCellRenderer<CommPortIdentifier>(){
+                public java.awt.Component getListCellRendererComponent(JList<? extends CommPortIdentifier> list, CommPortIdentifier o, int x, boolean a, boolean b){
+                    String value = o.getName();
                     if(value == null){
                         value = "null";
@@ -103,5 +98,4 @@
                         JOptionPane pane = new JOptionPane(dialog, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
                         JDialog dlg = pane.createDialog(Main.parent, tr("Configure Device"));
-                        dialog.setOptionPane(pane);
                         dlg.setVisible(true);
                         if(((Integer)pane.getValue()) == JOptionPane.OK_OPTION){
@@ -140,5 +134,5 @@
         portCombo.removeAllItems();
 
-        Enumeration e = CommPortIdentifier.getPortIdentifiers();
+        Enumeration<?> e = CommPortIdentifier.getPortIdentifiers();
         for(e = CommPortIdentifier.getPortIdentifiers(); e.hasMoreElements(); ){
             CommPortIdentifier port = (CommPortIdentifier)e.nextElement();
@@ -163,10 +157,3 @@
         return (CommPortIdentifier)portCombo.getSelectedItem();
     }
-    /**
-     * Has to be called after this dialog has been added to a JOptionPane.
-     * @param optionPane
-     */
-    public void setOptionPane(JOptionPane optionPane) {
-        this.optionPane = optionPane;
-    }
 }
Index: applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatPlugin.java
===================================================================
--- applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatPlugin.java	(revision 30531)
+++ applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatPlugin.java	(revision 30532)
@@ -7,5 +7,4 @@
 import java.awt.event.KeyEvent;
 import java.io.IOException;
-import java.util.Enumeration;
 
 import javax.swing.JDialog;
@@ -86,5 +85,4 @@
     }
 
-
     GlobalsatImportAction importAction;
     public GlobalsatPlugin(PluginInformation info) {
@@ -92,5 +90,5 @@
         boolean error = false;
         try{
-            Enumeration e = CommPortIdentifier.getPortIdentifiers();
+            CommPortIdentifier.getPortIdentifiers();
         }catch(java.lang.UnsatisfiedLinkError e){
             error = true;
@@ -114,5 +112,4 @@
             JOptionPane pane = new JOptionPane(dialog, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
             JDialog dlg = pane.createDialog(Main.parent, tr("Import"));
-            dialog.setOptionPane(pane);
             dlg.setVisible(true);
             if(((Integer)pane.getValue()) == JOptionPane.OK_OPTION){
Index: applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/dialogs/GraphViewDialog.java
===================================================================
--- applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/dialogs/GraphViewDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/dialogs/GraphViewDialog.java	(revision 30532)
@@ -52,11 +52,10 @@
     private final LinkedHashMap<String, ColorScheme> availableColorSchemes;
 
-
     private final GraphViewPreferences preferences;
     private final GraphViewPlugin plugin;
 
-    private final JComboBox rulesetComboBox;
-    private final JComboBox bookmarkComboBox;
-    private final JComboBox colorSchemeComboBox;
+    private final JComboBox<String> rulesetComboBox;
+    private final JComboBox<String> bookmarkComboBox;
+    private final JComboBox<String> colorSchemeComboBox;
 
     /**
@@ -111,5 +110,5 @@
             selectionPanel.add(rulesetLabel);
 
-            rulesetComboBox = new JComboBox();
+            rulesetComboBox = new JComboBox<>();
             rulesetComboBox.addActionListener(rulesetActionListener);
             gbcComboBox.gridy = 0;
@@ -125,5 +124,5 @@
             selectionPanel.add(bookmarkLabel);
 
-            bookmarkComboBox = new JComboBox();
+            bookmarkComboBox = new JComboBox<>();
             bookmarkComboBox.addActionListener(bookmarkActionListener);
             gbcComboBox.gridy = 1;
@@ -139,5 +138,5 @@
             selectionPanel.add(colorSchemeLabel);
 
-            colorSchemeComboBox = new JComboBox();
+            colorSchemeComboBox = new JComboBox<>();
             for (String colorSchemeName : availableColorSchemes.keySet()) {
                 colorSchemeComboBox.addItem(colorSchemeName);
@@ -285,6 +284,4 @@
 
         bookmarkComboBox.addActionListener(bookmarkActionListener);
-
     }
-
 }
Index: applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/dialogs/GraphViewPreferenceEditor.java
===================================================================
--- applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/dialogs/GraphViewPreferenceEditor.java	(revision 30531)
+++ applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/dialogs/GraphViewPreferenceEditor.java	(revision 30532)
@@ -57,5 +57,5 @@
     private JButton selectRulesetFolderButton;
 
-    private JComboBox bookmarkComboBox;
+    private JComboBox<String> bookmarkComboBox;
     private JButton editBookmarkButton;
     private JButton deleteBookmarkButton;
@@ -174,5 +174,5 @@
         vehiclePanel.setLayout(new BoxLayout(vehiclePanel, BoxLayout.Y_AXIS));
 
-        bookmarkComboBox = new JComboBox();
+        bookmarkComboBox = new JComboBox<>();
         vehiclePanel.add(bookmarkComboBox);
 
Index: applications/editors/josm/plugins/imageryadjust/src/imageryadjust/ImageryAdjustMapMode.java
===================================================================
--- applications/editors/josm/plugins/imageryadjust/src/imageryadjust/ImageryAdjustMapMode.java	(revision 30531)
+++ applications/editors/josm/plugins/imageryadjust/src/imageryadjust/ImageryAdjustMapMode.java	(revision 30532)
@@ -165,5 +165,5 @@
 
         @Override
-        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected,
+        public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected,
                 boolean cellHasFocus) {
             Layer layer = (Layer) value;
@@ -186,7 +186,7 @@
         if (adjustableLayers.size()==0) return null;
         if (adjustableLayers.size()==1) return adjustableLayers.get(0);
-        JComboBox layerList = new JComboBox();
+        JComboBox<Layer> layerList = new JComboBox<>();
         layerList.setRenderer(new LayerListCellRenderer());
-        layerList.setModel(new DefaultComboBoxModel(adjustableLayers.toArray()));
+        layerList.setModel(new DefaultComboBoxModel<Layer>(adjustableLayers.toArray(new Layer[0])));
         layerList.setSelectedIndex(0);
 
Index: applications/editors/josm/plugins/imagerycache/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- applications/editors/josm/plugins/imagerycache/.settings/org.eclipse.jdt.core.prefs	(revision 30531)
+++ applications/editors/josm/plugins/imagerycache/.settings/org.eclipse.jdt.core.prefs	(revision 30532)
@@ -1,7 +1,95 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
 org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.7
Index: applications/editors/josm/plugins/imagerycache/src/org/mapdb/AsyncWriteEngine.java
===================================================================
--- applications/editors/josm/plugins/imagerycache/src/org/mapdb/AsyncWriteEngine.java	(revision 30531)
+++ applications/editors/josm/plugins/imagerycache/src/org/mapdb/AsyncWriteEngine.java	(revision 30532)
@@ -49,6 +49,5 @@
     protected Throwable writerFailedException = null;
 
-
-    protected final LongConcurrentHashMap<Fun.Tuple2<Object,Serializer>> items = new LongConcurrentHashMap<Fun.Tuple2<Object, Serializer>>();
+    protected final LongConcurrentHashMap<Fun.Tuple2<Object,Serializer<Object>>> items = new LongConcurrentHashMap<>();
 
     protected final Thread newRecidsThread = new Thread("MapDB prealloc #"+threadNum){
@@ -73,5 +72,5 @@
 
                 for(;;){
-                    LongMap.LongMapIterator<Fun.Tuple2<Object,Serializer>> iter = items.longMapIterator();
+                    LongMap.LongMapIterator<Fun.Tuple2<Object,Serializer<Object>>> iter = items.longMapIterator();
 
                     if(!iter.moveToNext()){
@@ -87,5 +86,5 @@
                                     while(iter.moveToNext()){
                                         long recid = iter.key();
-                                        Fun.Tuple2<Object,Serializer> value = iter.value();
+                                        Fun.Tuple2<Object,Serializer<Object>> value = iter.value();
                                         if(value.a==DELETED){
                                             AsyncWriteEngine.super.delete(recid, value.b);
@@ -107,5 +106,5 @@
                         Utils.lock(writeLocks,recid);
                         try{
-                            Fun.Tuple2<Object,Serializer> value = iter.value();
+                            Fun.Tuple2<Object,Serializer<Object>> value = iter.value();
                             if(value.a==DELETED){
                                 AsyncWriteEngine.super.delete(recid, value.b);
@@ -165,4 +164,5 @@
     }
 
+    @SuppressWarnings("unchecked")
     @Override
     public <A> A get(long recid, Serializer<A> serializer) {
@@ -172,5 +172,5 @@
             try{
                 checkState();
-                Fun.Tuple2<Object,Serializer> item = items.get(recid);
+                Fun.Tuple2<Object,Serializer<Object>> item = items.get(recid);
                 if(item!=null){
                     if(item.a == DELETED) return null;
@@ -187,4 +187,5 @@
     }
 
+    @SuppressWarnings({ "rawtypes", "unchecked" })
     @Override
     public <A> void update(long recid, A value, Serializer<A> serializer) {
@@ -206,4 +207,5 @@
     }
 
+    @SuppressWarnings({ "unchecked", "rawtypes" })
     @Override
     public <A> boolean compareAndSwap(long recid, A expectedOldValue, A newValue, Serializer<A> serializer) {
@@ -212,5 +214,5 @@
         try{
             checkState();
-            Fun.Tuple2<Object, Serializer> existing = items.get(recid);
+            Fun.Tuple2<Object, Serializer<Object>> existing = items.get(recid);
             A oldValue = existing!=null? (A) existing.a : super.get(recid, serializer);
             if(oldValue == expectedOldValue || (oldValue!=null && oldValue.equals(expectedOldValue))){
@@ -226,4 +228,5 @@
     }
 
+    @SuppressWarnings("unchecked")
     @Override
     public <A> void delete(long recid, Serializer<A> serializer) {
@@ -245,5 +248,4 @@
             shutdownCondition.await();
 
-
             super.close();
         } catch (InterruptedException e) {
@@ -251,6 +253,4 @@
         }
     }
-
-
 
     protected WeakReference<Engine> parentEngineWeakRef = null;
@@ -302,4 +302,3 @@
         }
     }
-
 }
Index: applications/editors/josm/plugins/imagerycache/src/org/mapdb/BTreeKeySerializer.java
===================================================================
--- applications/editors/josm/plugins/imagerycache/src/org/mapdb/BTreeKeySerializer.java	(revision 30531)
+++ applications/editors/josm/plugins/imagerycache/src/org/mapdb/BTreeKeySerializer.java	(revision 30532)
@@ -18,7 +18,7 @@
     static final class BasicKeySerializer extends BTreeKeySerializer<Object> {
 
-        protected final Serializer defaultSerializer;
+        protected final Serializer<Object> defaultSerializer;
 
-        BasicKeySerializer(Serializer defaultSerializer) {
+        BasicKeySerializer(Serializer<Object> defaultSerializer) {
             this.defaultSerializer = defaultSerializer;
         }
Index: applications/editors/josm/plugins/imagerycache/src/org/mapdb/BTreeMap.java
===================================================================
--- applications/editors/josm/plugins/imagerycache/src/org/mapdb/BTreeMap.java	(revision 30531)
+++ applications/editors/josm/plugins/imagerycache/src/org/mapdb/BTreeMap.java	(revision 30532)
@@ -275,5 +275,4 @@
     }
 
-
     protected final Serializer<BNode> nodeSerializer = new Serializer<BNode>() {
         @Override
@@ -298,11 +297,8 @@
                     }
                 }
-
-            }
-
+            }
 
             final boolean left = value.keys()[0] == null;
             final boolean right = value.keys()[value.keys().length-1] == null;
-
 
             final int header;
@@ -334,6 +330,4 @@
             }
 
-
-
             out.write(header);
             out.write(value.keys().length);
@@ -346,6 +340,4 @@
                     Utils.packLong(out, child);
             }
-
-
 
             keySerializer.serialize(out,left?1:0,
Index: applications/editors/josm/plugins/imagerycache/src/org/mapdb/Bind.java
===================================================================
--- applications/editors/josm/plugins/imagerycache/src/org/mapdb/Bind.java	(revision 30531)
+++ applications/editors/josm/plugins/imagerycache/src/org/mapdb/Bind.java	(revision 30532)
@@ -4,5 +4,4 @@
 import java.util.Map;
 import java.util.NavigableSet;
-import java.util.Set;
 import java.util.concurrent.ConcurrentMap;
 
@@ -21,9 +20,10 @@
             public Iterator<K1> iterator() {
                 //use range query to get all values
+                @SuppressWarnings("unchecked")
                 final Iterator<Fun.Tuple2<K2,K1>> iter =
-                    ((NavigableSet)secondaryKeys) //cast is workaround for generics
+                    secondaryKeys
                         .subSet(
-                                Fun.t2(secondaryKey,null), //NULL represents lower bound, everything is larger than null
-                                Fun.t2(secondaryKey,Fun.HI) // HI is upper bound everything is smaller then HI
+                                Fun.t2(secondaryKey,(K1)null), //NULL represents lower bound, everything is larger than null
+                                Fun.t2(secondaryKey,(K1)Fun.HI) // HI is upper bound everything is smaller then HI
                         ).iterator();
 
@@ -59,10 +59,10 @@
     }
 
-    public static void size(MapWithModificationListener map, final Atomic.Long size){
+    public static <K,V> void size(MapWithModificationListener<K, V> map, final Atomic.Long size){
         //set initial value first if necessary
         if(size.get() == 0 && map.isEmpty())
             size.set(map.size()); //TODO long overflow?
 
-        map.addModificationListener(new MapListener() {
+        map.addModificationListener(new MapListener<K, V>() {
             @Override
             public void update(Object key, Object oldVal, Object newVal) {
Index: applications/editors/josm/plugins/imagerycache/src/org/mapdb/CacheLRU.java
===================================================================
--- applications/editors/josm/plugins/imagerycache/src/org/mapdb/CacheLRU.java	(revision 30531)
+++ applications/editors/josm/plugins/imagerycache/src/org/mapdb/CacheLRU.java	(revision 30532)
@@ -78,5 +78,5 @@
             Utils.lock(locks,recid);
             Engine engine = getWrappedEngine();
-            LongMap cache2 = checkClosed(cache);
+            LongMap<Object> cache2 = checkClosed(cache);
             Object oldValue = cache.get(recid);
             if(oldValue == expectedOldValue || oldValue.equals(expectedOldValue)){
@@ -94,5 +94,4 @@
         }
     }
-
 
     @SuppressWarnings("rawtypes")
Index: applications/editors/josm/plugins/imagerycache/src/org/mapdb/EngineWrapper.java
===================================================================
--- applications/editors/josm/plugins/imagerycache/src/org/mapdb/EngineWrapper.java	(revision 30531)
+++ applications/editors/josm/plugins/imagerycache/src/org/mapdb/EngineWrapper.java	(revision 30532)
@@ -14,7 +14,5 @@
  *  limitations under the License.
  */
-
 package org.mapdb;
-
 
 import java.io.IOError;
@@ -26,5 +24,4 @@
 import java.util.concurrent.ConcurrentLinkedQueue;
 
-
 /**
  * EngineWrapper adapter. It implements all methods on Engine interface.
@@ -293,17 +290,16 @@
     }
 
-
     /**
      * check if Record Instances were not modified while in cache.
      * Usuful to diagnose strange problems with Instance Cache.
      */
-    public static class ImmutabilityCheckEngine extends EngineWrapper{
-
-        protected static class Item {
-            final Serializer serializer;
-            final Object item;
+    public static class ImmutabilityCheckEngine extends EngineWrapper {
+
+        protected static class Item<E> {
+            final Serializer<E> serializer;
+            final E item;
             final int oldChecksum;
 
-            public Item(Serializer serializer, Object item) {
+            public Item(Serializer<E> serializer, E item) {
                 if(item==null || serializer==null) throw new AssertionError("null");
                 this.serializer = serializer;
@@ -313,5 +309,5 @@
             }
 
-            private int checksum(){
+            private int checksum() {
                 try {
                     DataOutput2 out = new DataOutput2();
@@ -324,5 +320,5 @@
             }
 
-            void check(){
+            void check() {
                 int newChecksum = checksum();
                 if(oldChecksum!=newChecksum) throw new AssertionError("Record instance was modified: \n  "+item+"\n  "+serializer);
@@ -330,5 +326,5 @@
         }
 
-        protected LongConcurrentHashMap<Item> items = new LongConcurrentHashMap<Item>();
+        protected LongConcurrentHashMap<Item<?>> items = new LongConcurrentHashMap<>();
 
         protected ImmutabilityCheckEngine(Engine engine) {
@@ -338,8 +334,8 @@
         @Override
         public <A> A get(long recid, Serializer<A> serializer) {
-            Item item = items.get(recid);
+            Item<?> item = items.get(recid);
             if(item!=null) item.check();
             A ret = super.get(recid, serializer);
-            if(ret!=null) items.put(recid, new Item(serializer,ret));
+            if(ret!=null) items.put(recid, new Item<A>(serializer,ret));
             return ret;
         }
@@ -348,5 +344,5 @@
         public <A> long put(A value, Serializer<A> serializer) {
             long ret =  super.put(value, serializer);
-            if(value!=null) items.put(ret, new Item(serializer,value));
+            if(value!=null) items.put(ret, new Item<A>(serializer,value));
             return ret;
         }
@@ -354,13 +350,14 @@
         @Override
         public <A> void update(long recid, A value, Serializer<A> serializer) {
-            Item item = items.get(recid);
+            Item<?> item = items.get(recid);
             if(item!=null) item.check();
             super.update(recid, value, serializer);
-            if(value!=null) items.put(recid, new Item(serializer,value));
-        }
-
+            if(value!=null) items.put(recid, new Item<A>(serializer,value));
+        }
+
+        @SuppressWarnings({ "unchecked", "rawtypes" })
         @Override
         public <A> boolean compareAndSwap(long recid, A expectedOldValue, A newValue, Serializer<A> serializer) {
-            Item item = items.get(recid);
+            Item<?> item = items.get(recid);
             if(item!=null) item.check();
             boolean ret = super.compareAndSwap(recid, expectedOldValue, newValue, serializer);
@@ -372,5 +369,5 @@
         public void close() {
             super.close();
-            for(Iterator<Item> iter = items.valuesIterator(); iter.hasNext();){
+            for(Iterator<Item<?>> iter = items.valuesIterator(); iter.hasNext();){
                 iter.next().check();
             }
@@ -378,5 +375,4 @@
         }
     }
-    
     
     /** Engine wrapper with all methods synchronized on global lock, useful to diagnose concurrency issues.*/ 
@@ -442,4 +438,3 @@
         }
     }
-
 }
Index: applications/editors/josm/plugins/imagerycache/src/org/mapdb/Queues.java
===================================================================
--- applications/editors/josm/plugins/imagerycache/src/org/mapdb/Queues.java	(revision 30531)
+++ applications/editors/josm/plugins/imagerycache/src/org/mapdb/Queues.java	(revision 30532)
@@ -40,4 +40,5 @@
             }
 
+            @SuppressWarnings("unchecked")
             @Override
             public Node<E> deserialize(DataInput in, int available) throws IOException {
@@ -71,4 +72,5 @@
         protected static final class Node<E>{
 
+            @SuppressWarnings({ "unchecked", "rawtypes" })
             protected static final Node EMPTY = new Node(0L, null);
 
@@ -302,4 +304,5 @@
     }
 
+    @SuppressWarnings("unchecked")
     static <E> Stack<E> getStack(Engine engine, Serializer<Serializer> serializerSerializer, long rootRecid){
         StackRoot root = engine.get(rootRecid, new StackRootSerializer(serializerSerializer));
@@ -323,4 +326,5 @@
         }
 
+        @SuppressWarnings("unchecked")
         @Override
         public boolean add(E item){
@@ -337,4 +341,5 @@
         }
 
+        @SuppressWarnings("unchecked")
         @Override
         public E poll(){
@@ -416,4 +421,5 @@
     }
 
+    @SuppressWarnings("unchecked")
     static <E> long createQueue(Engine engine, Serializer<Serializer> serializerSerializer, Serializer<E> serializer){
         long headerRecid = engine.put(0L, Serializer.LONG_SERIALIZER);
@@ -426,5 +432,5 @@
     }
 
-
+    @SuppressWarnings("unchecked")
     static <E> Queue<E> getQueue(Engine engine, Serializer<Serializer> serializerSerializer, long rootRecid){
         QueueRoot root = engine.get(rootRecid, new QueueRootSerializer(serializerSerializer));
@@ -439,4 +445,5 @@
         protected final long size;
 
+        @SuppressWarnings("unchecked")
         public CircularQueue(Engine engine, Serializer serializer, long headRecid, long headInsertRecid, long size) {
             super(engine, serializer, headRecid);
@@ -445,4 +452,5 @@
         }
 
+        @SuppressWarnings("unchecked")
         @Override
         public boolean add(Object o) {
@@ -545,4 +553,5 @@
     }
 
+    @SuppressWarnings({ "rawtypes", "unchecked" })
     static <E> long createCircularQueue(Engine engine, Serializer<Serializer> serializerSerializer, Serializer<E> serializer, long size){
         if(size<2) throw new IllegalArgumentException();
Index: applications/editors/josm/plugins/imagerycache/src/org/mapdb/SerializerBase.java
===================================================================
--- applications/editors/josm/plugins/imagerycache/src/org/mapdb/SerializerBase.java	(revision 30531)
+++ applications/editors/josm/plugins/imagerycache/src/org/mapdb/SerializerBase.java	(revision 30532)
@@ -354,5 +354,5 @@
         /** classes bellow need object stack, so initialize it if not alredy initialized*/
         if (objectStack == null) {
-            objectStack = new FastArrayList();
+            objectStack = new FastArrayList<>();
             objectStack.add(obj);
         }
@@ -1065,5 +1065,5 @@
 
         if (objectStack == null)
-            objectStack = new FastArrayList();
+            objectStack = new FastArrayList<>();
         int oldObjectStackSize = objectStack.size();
 
@@ -1112,5 +1112,5 @@
                 break;
             case SERIALIZER_COMPRESSION_WRAPPER:
-                ret = CompressLZF.CompressionWrapper((Serializer) deserialize(is, objectStack));
+                ret = CompressLZF.CompressionWrapper((Serializer<?>) deserialize(is, objectStack));
                 break;
             default:
Index: applications/editors/josm/plugins/imagerycache/src/org/mapdb/SerializerPojo.java
===================================================================
--- applications/editors/josm/plugins/imagerycache/src/org/mapdb/SerializerPojo.java	(revision 30531)
+++ applications/editors/josm/plugins/imagerycache/src/org/mapdb/SerializerPojo.java	(revision 30532)
@@ -542,5 +542,5 @@
     static{
         try{
-            Class clazz = Class.forName("sun.reflect.ReflectionFactory");
+            Class<?> clazz = Class.forName("sun.reflect.ReflectionFactory");
             if(clazz!=null){
                 Method getReflectionFactory = clazz.getMethod("getReflectionFactory");
@@ -582,5 +582,5 @@
      *   If non of these works we fallback into usual reflection which requires an no-arg constructor
      */
-    @SuppressWarnings("restriction")
+    @SuppressWarnings({ "restriction", "unchecked" })
 	protected <T> T createInstanceSkippinkConstructor(Class<T> clazz)
             throws NoSuchMethodException, InvocationTargetException, IllegalAccessException, InstantiationException {
Index: applications/editors/josm/plugins/imagerycache/src/org/mapdb/SnapshotEngine.java
===================================================================
--- applications/editors/josm/plugins/imagerycache/src/org/mapdb/SnapshotEngine.java	(revision 30531)
+++ applications/editors/josm/plugins/imagerycache/src/org/mapdb/SnapshotEngine.java	(revision 30532)
@@ -36,4 +36,5 @@
     protected final ReentrantReadWriteLock snapshotsLock = new ReentrantReadWriteLock();
 
+    @SuppressWarnings("unchecked")
     @Override
     public <A> long put(A value, Serializer<A> serializer) {
@@ -50,4 +51,5 @@
     }
 
+    @SuppressWarnings("unchecked")
     @Override
     public <A> boolean compareAndSwap(long recid, A expectedOldValue, A newValue, Serializer<A> serializer) {
@@ -66,4 +68,5 @@
     }
 
+    @SuppressWarnings("unchecked")
     @Override
     public <A> void update(long recid, A value, Serializer<A> serializer) {
@@ -85,4 +88,5 @@
     }
 
+    @SuppressWarnings("unchecked")
     @Override
     public  <A> void delete(long recid, Serializer<A> serializer) {
@@ -130,4 +134,5 @@
 
 
+        @SuppressWarnings("unchecked")
         @Override
         public <A> A get(long recid, Serializer<A> serializer) {
Index: applications/editors/josm/plugins/imagerycache/src/org/mapdb/TxMaker.java
===================================================================
--- applications/editors/josm/plugins/imagerycache/src/org/mapdb/TxMaker.java	(revision 30531)
+++ applications/editors/josm/plugins/imagerycache/src/org/mapdb/TxMaker.java	(revision 30532)
@@ -11,4 +11,5 @@
 public class TxMaker {
 
+    @SuppressWarnings("unchecked")
     protected static final Fun.Tuple2<Object, Serializer> DELETED = new Fun.Tuple2(null, Serializer.STRING_SERIALIZER);
 
@@ -62,5 +63,4 @@
         protected Set<Long> newItems = new LinkedHashSet<Long>();
 
-
         protected TxEngine(Engine engine) {
             super(engine);
@@ -79,4 +79,5 @@
         }
 
+        @SuppressWarnings("unchecked")
         @Override
         public <A> A get(long recid, Serializer<A> serializer) {
@@ -93,4 +94,5 @@
         }
 
+        @SuppressWarnings({ "rawtypes", "unchecked" })
         @Override
         public <A> void update(long recid, A value, Serializer<A> serializer) {
@@ -128,4 +130,5 @@
         }
 
+        @SuppressWarnings({ "unchecked", "rawtypes" })
         @Override
         public void commit() {
@@ -144,5 +147,4 @@
                 engine.commit();
             }
-
         }
 
@@ -163,5 +165,4 @@
                 newItems = null;
             }
-
         }
 
@@ -171,5 +172,3 @@
         }
     }
-
-
 }
Index: applications/editors/josm/plugins/junctionchecking/src/org/openstreetmap/josm/plugins/JunctionChecker/junctionchecking/JunctionChecker.java
===================================================================
--- applications/editors/josm/plugins/junctionchecking/src/org/openstreetmap/josm/plugins/JunctionChecker/junctionchecking/JunctionChecker.java	(revision 30531)
+++ applications/editors/josm/plugins/junctionchecking/src/org/openstreetmap/josm/plugins/JunctionChecker/junctionchecking/JunctionChecker.java	(revision 30532)
@@ -122,5 +122,6 @@
 	 */
 	private ArrayList<HashSet<Channel>> checkJunctionCandidates(ArrayList<HashSet<Channel>> junctioncandidates){
-		ArrayList<HashSet<Channel>> junctions = (ArrayList<HashSet<Channel>>) junctioncandidates.clone();
+		@SuppressWarnings("unchecked")
+        ArrayList<HashSet<Channel>> junctions = (ArrayList<HashSet<Channel>>) junctioncandidates.clone();
 		for (int i = 0; i < junctioncandidates.size(); i++) {
 			for (int j = 0; j < junctioncandidates.size(); j++) {
Index: applications/editors/josm/plugins/lakewalker/src/org/openstreetmap/josm/plugins/lakewalker/StringEnumConfigurer.java
===================================================================
--- applications/editors/josm/plugins/lakewalker/src/org/openstreetmap/josm/plugins/lakewalker/StringEnumConfigurer.java	(revision 30531)
+++ applications/editors/josm/plugins/lakewalker/src/org/openstreetmap/josm/plugins/lakewalker/StringEnumConfigurer.java	(revision 30532)
@@ -44,5 +44,5 @@
     protected String[] validValues;
     protected String[] transValues;
-    protected JComboBox box;
+    protected JComboBox<String> box;
     protected Box panel;
     protected String tooltipText = "";
@@ -68,5 +68,5 @@
             panel = Box.createHorizontalBox();
             panel.add(new JLabel(name));
-            box = new JComboBox(transValues);
+            box = new JComboBox<>(transValues);
             box.setToolTipText(tooltipText);
             box.setMaximumSize(new Dimension(box.getMaximumSize().width,box.getPreferredSize().height));
Index: applications/editors/josm/plugins/mapdust/.classpath
===================================================================
--- applications/editors/josm/plugins/mapdust/.classpath	(revision 30531)
+++ applications/editors/josm/plugins/mapdust/.classpath	(revision 30532)
@@ -4,6 +4,6 @@
 	<classpathentry including="conf/|images/" kind="src" path=""/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
-	<classpathentry kind="lib" path="lib/gson-1.5.jar"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/JOSM"/>
+	<classpathentry kind="lib" path="lib/gson-2.2.4.jar"/>
 	<classpathentry kind="output" path="build/classes"/>
 </classpath>
Index: applications/editors/josm/plugins/mapdust/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- applications/editors/josm/plugins/mapdust/.settings/org.eclipse.jdt.core.prefs	(revision 30531)
+++ applications/editors/josm/plugins/mapdust/.settings/org.eclipse.jdt.core.prefs	(revision 30532)
@@ -1,3 +1,9 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
@@ -7,5 +13,87 @@
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.7
Index: applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/MapdustActionUploaderException.java
===================================================================
--- applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/MapdustActionUploaderException.java	(revision 30531)
+++ applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/MapdustActionUploaderException.java	(revision 30532)
@@ -36,7 +36,4 @@
  */
 public class MapdustActionUploaderException extends Exception {
-
-    /** Serial version UID */
-    private static final long serialVersionUID = -6128820229665805478L;
 
     /**
Index: applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/action/adapter/DisplayMenu.java
===================================================================
--- applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/action/adapter/DisplayMenu.java	(revision 30531)
+++ applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/action/adapter/DisplayMenu.java	(revision 30532)
@@ -31,6 +31,9 @@
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
+
 import javax.swing.JList;
 import javax.swing.JPopupMenu;
+
+import org.openstreetmap.josm.plugins.mapdust.service.value.MapdustBug;
 
 
@@ -48,5 +51,5 @@
 
     /** The list of bugs */
-    private JList listBugs;
+    private JList<MapdustBug> listBugs;
 
     /**
@@ -61,5 +64,5 @@
      * @param menu The <code>JPopupMenu</code> object
      */
-    public DisplayMenu(JList listBugs, JPopupMenu menu) {
+    public DisplayMenu(JList<MapdustBug> listBugs, JPopupMenu menu) {
         this.listBugs = listBugs;
         this.menu = menu;
Index: applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/action/adapter/WindowClose.java
===================================================================
--- applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/action/adapter/WindowClose.java	(revision 30531)
+++ applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/action/adapter/WindowClose.java	(revision 30532)
@@ -45,6 +45,4 @@
  */
 public class WindowClose extends WindowAdapter {
-
-    /** Serial version UID */
 
     /** A <code>AbstractDialog</code> object */
Index: applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/action/execute/ExecuteActionList.java
===================================================================
--- applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/action/execute/ExecuteActionList.java	(revision 30531)
+++ applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/action/execute/ExecuteActionList.java	(revision 30532)
@@ -55,7 +55,4 @@
 public class ExecuteActionList extends MapdustExecuteAction implements
         MapdustUpdateObservable {
-
-    /** Serial version UID */
-    private static final long serialVersionUID = -7487830542214611774L;
 
     /** List of MapdustRefreshObserver objects */
Index: applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/action/execute/ExecuteCloseBug.java
===================================================================
--- applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/action/execute/ExecuteCloseBug.java	(revision 30531)
+++ applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/action/execute/ExecuteCloseBug.java	(revision 30532)
@@ -64,7 +64,4 @@
 public class ExecuteCloseBug extends MapdustExecuteAction implements
         MapdustBugObservable, MapdustActionObservable {
-
-    /** Serial version UID */
-    private static final long serialVersionUID = 3468827127588061014L;
 
     /** The list of Mapdust bug observers */
Index: applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/action/execute/MapdustExecuteAction.java
===================================================================
--- applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/action/execute/MapdustExecuteAction.java	(revision 30531)
+++ applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/action/execute/MapdustExecuteAction.java	(revision 30532)
@@ -44,7 +44,4 @@
  */
 public abstract class MapdustExecuteAction extends AbstractAction {
-
-    /** Serial version UID */
-    private static final long serialVersionUID = 4318259806647818543L;
 
     /** The abstract dialog object */
Index: applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/dialog/CreateBugDialog.java
===================================================================
--- applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/dialog/CreateBugDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/dialog/CreateBugDialog.java	(revision 30532)
@@ -28,5 +28,4 @@
 package org.openstreetmap.josm.plugins.mapdust.gui.component.dialog;
 
-
 import java.awt.Color;
 import java.awt.Font;
@@ -34,4 +33,5 @@
 import java.awt.Point;
 import java.awt.Rectangle;
+
 import javax.swing.JButton;
 import javax.swing.JComboBox;
@@ -41,4 +41,5 @@
 import javax.swing.JTextField;
 import javax.swing.WindowConstants;
+
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.plugins.mapdust.MapdustPlugin;
@@ -49,6 +50,6 @@
 import org.openstreetmap.josm.plugins.mapdust.gui.component.renderer.ComboBoxRenderer;
 import org.openstreetmap.josm.plugins.mapdust.gui.component.util.ComponentUtil;
+import org.openstreetmap.josm.plugins.mapdust.service.value.BugType;
 import org.openstreetmap.josm.tools.ImageProvider;
-
 
 /**
@@ -71,5 +72,5 @@
 
     /** The combo-box for the bug types */
-    private JComboBox cbbType;
+    private JComboBox<BugType> cbbType;
 
     /** The nickname label */
@@ -248,5 +249,5 @@
      * @return the cbbType
      */
-    public JComboBox getCbbType() {
+    public JComboBox<BugType> getCbbType() {
         return cbbType;
     }
Index: applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/model/ActionListModel.java
===================================================================
--- applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/model/ActionListModel.java	(revision 30531)
+++ applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/model/ActionListModel.java	(revision 30532)
@@ -40,5 +40,5 @@
  * @version $Revision$
  */
-public class ActionListModel extends AbstractListModel {
+public class ActionListModel extends AbstractListModel<MapdustAction> {
 
     /** The serial version UID */
@@ -73,5 +73,5 @@
      */
     @Override
-    public Object getElementAt(int index) {
+    public MapdustAction getElementAt(int index) {
         if (index >= 0 && index < list.size()) {
             return list.get(index);
@@ -89,4 +89,3 @@
         return (list != null ? list.size() : 0);
     }
-
 }
Index: applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/model/BugsListModel.java
===================================================================
--- applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/model/BugsListModel.java	(revision 30531)
+++ applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/model/BugsListModel.java	(revision 30532)
@@ -28,9 +28,7 @@
 package org.openstreetmap.josm.plugins.mapdust.gui.component.model;
 
-
 import java.util.List;
 import javax.swing.AbstractListModel;
 import org.openstreetmap.josm.plugins.mapdust.service.value.MapdustBug;
-
 
 /**
@@ -40,5 +38,5 @@
  *
  */
-public class BugsListModel extends AbstractListModel {
+public class BugsListModel extends AbstractListModel<MapdustBug> {
 
     /** The serial version UID */
@@ -71,5 +69,5 @@
      */
     @Override
-    public Object getElementAt(int index) {
+    public MapdustBug getElementAt(int index) {
         if (index >= 0 && index < bugs.size()) {
             return bugs.get(index);
@@ -94,4 +92,3 @@
         this.fireContentsChanged(this, 0, bugs.size() - 1);
     }
-
 }
Index: applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/model/CommentListModel.java
===================================================================
--- applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/model/CommentListModel.java	(revision 30531)
+++ applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/model/CommentListModel.java	(revision 30532)
@@ -40,5 +40,5 @@
  *
  */
-public class CommentListModel implements ListModel {
+public class CommentListModel implements ListModel<MapdustComment> {
 
     /** The list of <code>MapdustBug</code> objects */
@@ -68,5 +68,5 @@
      */
     @Override
-    public Object getElementAt(int index) {
+    public MapdustComment getElementAt(int index) {
         if (index > 0 && index < comments.length) {
             return comments[index];
Index: applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/model/TypesListModel.java
===================================================================
--- applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/model/TypesListModel.java	(revision 30531)
+++ applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/model/TypesListModel.java	(revision 30532)
@@ -28,9 +28,7 @@
 package org.openstreetmap.josm.plugins.mapdust.gui.component.model;
 
-
 import javax.swing.AbstractListModel;
 import javax.swing.ComboBoxModel;
 import org.openstreetmap.josm.plugins.mapdust.service.value.BugType;
-
 
 /**
@@ -40,5 +38,5 @@
  * @version $Revision$
  */
-public class TypesListModel extends AbstractListModel implements ComboBoxModel {
+public class TypesListModel extends AbstractListModel<BugType> implements ComboBoxModel<BugType> {
 
     /** The serial version UID */
@@ -65,5 +63,5 @@
      */
     @Override
-    public Object getElementAt(int index) {
+    public BugType getElementAt(int index) {
         return types[index];
     }
Index: applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/panel/MapdustActionPanel.java
===================================================================
--- applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/panel/MapdustActionPanel.java	(revision 30531)
+++ applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/panel/MapdustActionPanel.java	(revision 30532)
@@ -28,8 +28,9 @@
 package org.openstreetmap.josm.plugins.mapdust.gui.component.panel;
 
+import static org.openstreetmap.josm.tools.I18n.tr;
 
-import static org.openstreetmap.josm.tools.I18n.tr;
 import java.awt.BorderLayout;
 import java.util.List;
+
 import javax.swing.AbstractAction;
 import javax.swing.JList;
@@ -37,4 +38,5 @@
 import javax.swing.JScrollPane;
 import javax.swing.JToggleButton;
+
 import org.openstreetmap.josm.plugins.mapdust.MapdustPlugin;
 import org.openstreetmap.josm.plugins.mapdust.gui.action.execute.ExecuteActionList;
@@ -42,5 +44,4 @@
 import org.openstreetmap.josm.plugins.mapdust.gui.component.util.ComponentUtil;
 import org.openstreetmap.josm.plugins.mapdust.gui.value.MapdustAction;
-
 
 /**
@@ -52,12 +53,9 @@
 public class MapdustActionPanel extends JPanel {
 
-    /** The serial version UID */
-    private static final long serialVersionUID = -6648507056357610823L;
-
     /** The scroll pane */
     private JScrollPane cmpActionList;
 
     /** The JList containing the MapDust action objects */
-    private JList actionJList;
+    private JList<MapdustAction> actionJList;
 
     /** The list of <code>MapdustAction</code> objects */
@@ -113,5 +111,4 @@
         cmpActionList.getViewport().setView(actionJList);
         cmpActionList.invalidate();
-
     }
 
@@ -133,4 +130,3 @@
         this.actionList = actionList;
     }
-
 }
Index: applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/panel/MapdustBugListPanel.java
===================================================================
--- applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/panel/MapdustBugListPanel.java	(revision 30531)
+++ applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/panel/MapdustBugListPanel.java	(revision 30532)
@@ -79,5 +79,5 @@
 
     /** The list of bugs */
-    private JList mapdustBugsJList;
+    private JList<MapdustBug> mapdustBugsJList;
 
     /** The scroll pane for the <code>MapdustBug</code>s */
@@ -163,5 +163,5 @@
             String text = " No bugs in the current view for the selected";
             text += " filters!";
-            JList textJList = new JList(new String[] { text });
+            JList<String> textJList = new JList<>(new String[] { text });
             textJList.setBorder(new LineBorder(Color.black, 1, false));
             textJList.setCellRenderer(new BugListCellRenderer());
@@ -192,5 +192,5 @@
             String text = " No bugs in the current view for the selected";
             text += " filters!";
-            JList textJList = new JList(new String[] { text });
+            JList<String> textJList = new JList<>(new String[] { text });
             textJList.setBorder(new LineBorder(Color.black, 1, false));
             textJList.setCellRenderer(new BugListCellRenderer());
@@ -198,6 +198,5 @@
         } else {
             if (mapdustBugsJList == null) {
-                mapdustBugsJList = ComponentUtil.createJList(mapdustBugsList,
-                        menu);
+                mapdustBugsJList = ComponentUtil.createJList(mapdustBugsList, menu);
                 mapdustBugsJList.addListSelectionListener(this);
                 DisplayMenu adapter = new DisplayMenu(mapdustBugsJList, menu);
@@ -349,5 +348,5 @@
      * @return the listBugs
      */
-    public JList getMapdustBugsJList() {
+    public JList<MapdustBug> getMapdustBugsJList() {
         return mapdustBugsJList;
     }
Index: applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/renderer/ActionListCellRenderer.java
===================================================================
--- applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/renderer/ActionListCellRenderer.java	(revision 30531)
+++ applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/renderer/ActionListCellRenderer.java	(revision 30532)
@@ -28,5 +28,4 @@
 package org.openstreetmap.josm.plugins.mapdust.gui.component.renderer;
 
-
 import java.awt.Component;
 import java.awt.Font;
@@ -39,5 +38,4 @@
 import org.openstreetmap.josm.tools.ImageProvider;
 
-
 /**
  * Cell renderer for the <code>MapdustAction</code> objects.
@@ -47,7 +45,4 @@
  */
 public class ActionListCellRenderer extends DefaultListCellRenderer {
-
-    /** The serial version UID */
-    private static final long serialVersionUID = 7552949107018269769L;
 
     /**
@@ -61,5 +56,5 @@
      */
     @Override
-    public Component getListCellRendererComponent(JList list, Object value,
+    public Component getListCellRendererComponent(JList<?> list, Object value,
             int index, boolean isSelected, boolean hasFocus) {
         JLabel label = (JLabel) super.getListCellRendererComponent(list, value,
Index: applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/renderer/BugListCellRenderer.java
===================================================================
--- applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/renderer/BugListCellRenderer.java	(revision 30531)
+++ applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/renderer/BugListCellRenderer.java	(revision 30532)
@@ -61,5 +61,5 @@
      */
     @Override
-    public Component getListCellRendererComponent(JList list, Object value,
+    public Component getListCellRendererComponent(JList<?> list, Object value,
             int index, boolean isSelected, boolean hasFocus) {
         JLabel label =(JLabel) super.getListCellRendererComponent(list, value,
Index: applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/renderer/ComboBoxRenderer.java
===================================================================
--- applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/renderer/ComboBoxRenderer.java	(revision 30531)
+++ applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/renderer/ComboBoxRenderer.java	(revision 30532)
@@ -28,5 +28,4 @@
 package org.openstreetmap.josm.plugins.mapdust.gui.component.renderer;
 
-
 import java.awt.Component;
 import java.awt.Font;
@@ -39,5 +38,4 @@
 import org.openstreetmap.josm.tools.ImageProvider;
 
-
 /**
  * Cell renderer for the <code>MapdustBug</code> types.
@@ -45,5 +43,5 @@
  * @author Bea
  */
-public class ComboBoxRenderer implements ListCellRenderer {
+public class ComboBoxRenderer implements ListCellRenderer<BugType> {
 
     /** The default renderer */
@@ -61,19 +59,15 @@
      */
     @Override
-    public Component getListCellRendererComponent(JList list, Object value,
+    public Component getListCellRendererComponent(JList<? extends BugType> list, BugType type,
             int index, boolean isSelected, boolean cellHasFocus) {
         JLabel label = (JLabel) defaultRenderer.getListCellRendererComponent(
-                list, value, index, isSelected, cellHasFocus);
-        if (value instanceof BugType) {
-            BugType type = (BugType) value;
-            String iconPath = "bugs/normal/open_" + type.getKey() + ".png";
-            String text = type.getValue();
-            ImageIcon icon = ImageProvider.get(iconPath);
-            label.setIcon(icon);
-            label.setText(text);
-            label.setFont( new Font("Times New Roman", Font.BOLD, 12));
-        }
+                list, type, index, isSelected, cellHasFocus);
+        String iconPath = "bugs/normal/open_" + type.getKey() + ".png";
+        String text = type.getValue();
+        ImageIcon icon = ImageProvider.get(iconPath);
+        label.setIcon(icon);
+        label.setText(text);
+        label.setFont( new Font("Times New Roman", Font.BOLD, 12));
         return label;
     }
-
 }
Index: applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/util/ComponentUtil.java
===================================================================
--- applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/util/ComponentUtil.java	(revision 30531)
+++ applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/gui/component/util/ComponentUtil.java	(revision 30532)
@@ -30,4 +30,5 @@
 
 import static org.openstreetmap.josm.tools.I18n.tr;
+
 import java.awt.Color;
 import java.awt.Component;
@@ -35,4 +36,5 @@
 import java.awt.Rectangle;
 import java.util.List;
+
 import javax.swing.AbstractAction;
 import javax.swing.Action;
@@ -52,4 +54,5 @@
 import javax.swing.SwingConstants;
 import javax.swing.border.LineBorder;
+
 import org.openstreetmap.josm.plugins.mapdust.gui.component.model.ActionListModel;
 import org.openstreetmap.josm.plugins.mapdust.gui.component.model.BugsListModel;
@@ -58,4 +61,5 @@
 import org.openstreetmap.josm.plugins.mapdust.gui.component.renderer.BugListCellRenderer;
 import org.openstreetmap.josm.plugins.mapdust.gui.value.MapdustAction;
+import org.openstreetmap.josm.plugins.mapdust.service.value.BugType;
 import org.openstreetmap.josm.plugins.mapdust.service.value.MapdustBug;
 import org.openstreetmap.josm.tools.ImageProvider;
@@ -211,5 +215,5 @@
      * @return A <code>JScrollPane</code> object
      */
-    public static JScrollPane createJScrollPane(JList list) {
+    public static JScrollPane createJScrollPane(JList<?> list) {
         JScrollPane jScrollPane = new JScrollPane();
         jScrollPane.setViewportView(list);
@@ -224,6 +228,6 @@
      * @return A <code>JList</code> object
      */
-    public static JList createJList(List<MapdustAction> list) {
-        final JList jList = new JList(new ActionListModel(list));
+    public static JList<MapdustAction> createJList(List<MapdustAction> list) {
+        final JList<MapdustAction> jList = new JList<>(new ActionListModel(list));
         jList.setBorder(new LineBorder(Color.black, 1, false));
         jList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
@@ -240,7 +244,6 @@
      * @return A <code>JList</code>
      */
-    public static JList createJList(List<MapdustBug> bugsList,
-            final JPopupMenu menu) {
-        final JList jList = new JList(new BugsListModel(bugsList));
+    public static JList<MapdustBug> createJList(List<MapdustBug> bugsList, final JPopupMenu menu) {
+        final JList<MapdustBug> jList = new JList<>(new BugsListModel(bugsList));
         jList.setBorder(new LineBorder(Color.black, 1, false));
         jList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
@@ -296,7 +299,7 @@
      * @return A <code>JComboBox</code> object
      */
-    public static JComboBox createJComboBox(Rectangle bounds,
-            ListCellRenderer renderer, Color backgroundColor) {
-        JComboBox jComboBox = new JComboBox(new TypesListModel());
+    public static JComboBox<BugType> createJComboBox(Rectangle bounds,
+            ListCellRenderer<BugType> renderer, Color backgroundColor) {
+        JComboBox<BugType> jComboBox = new JComboBox<>(new TypesListModel());
         jComboBox.setSelectedIndex(0);
         jComboBox.setBackground(backgroundColor);
Index: applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementLayer.java
===================================================================
--- applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementLayer.java	(revision 30531)
+++ applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementLayer.java	(revision 30532)
@@ -41,5 +41,4 @@
 import org.openstreetmap.josm.tools.ImageProvider;
 
-
 /**
  * This is a layer that draws a grid
@@ -206,5 +205,4 @@
     }
 
-
     private class GPXLayerImportAction extends AbstractAction {
 
@@ -212,5 +210,5 @@
      * The data model for the list component.
      */
-    private DefaultListModel model = new DefaultListModel();
+    private DefaultListModel<GpxLayer> model = new DefaultListModel<>();
 
     /**
@@ -224,5 +222,5 @@
     public void actionPerformed(ActionEvent e) {
         Box panel = Box.createVerticalBox();
-        final JList layerList = new JList(model);
+        final JList<GpxLayer> layerList = new JList<>(model);
         Collection<Layer> data = Main.map.mapView.getAllLayers();
         Layer lastLayer = null;
@@ -231,5 +229,5 @@
         for (Layer l : data){
                 if(l instanceof GpxLayer){
-                    model.addElement(l);
+                    model.addElement((GpxLayer) l);
                     lastLayer = l;
                     layerCnt++;
@@ -242,5 +240,5 @@
 
                 layerList.setCellRenderer(new DefaultListCellRenderer(){
-                        @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
+                        @Override public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
                             Layer layer = (Layer)value;
                             JLabel label = (JLabel)super.getListCellRendererComponent(list,
@@ -293,4 +291,3 @@
         }
     }
-
 }
Index: applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/MyCombinePrimitiveResolverDialog.java
===================================================================
--- applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/MyCombinePrimitiveResolverDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/MyCombinePrimitiveResolverDialog.java	(revision 30532)
@@ -953,5 +953,5 @@
             getActionMap().put("selectPreviousColumnCell", selectPreviousColumnCellAction);
 
-            setRowHeight((int)new JComboBox().getPreferredSize().getHeight());
+            setRowHeight((int)new JComboBox<Object>().getPreferredSize().getHeight());
         }
 
@@ -1376,5 +1376,5 @@
             ((MultiValueCellEditor)getColumnModel().getColumn(2).getCellEditor()).addNavigationListeners(this);
 
-            setRowHeight((int)new JComboBox().getPreferredSize().getHeight());
+            setRowHeight((int)new JComboBox<Object>().getPreferredSize().getHeight());
         }
 
Index: applications/editors/josm/plugins/mirrored_download/src/mirrored_download/MirroredDownloadAction.java
===================================================================
--- applications/editors/josm/plugins/mirrored_download/src/mirrored_download/MirroredDownloadAction.java	(revision 30531)
+++ applications/editors/josm/plugins/mirrored_download/src/mirrored_download/MirroredDownloadAction.java	(revision 30532)
@@ -117,5 +117,5 @@
     static class MirroredDownloadDialog extends DownloadDialog {
 
-        protected JComboBox/*<String>*/ overpassType;
+        protected JComboBox<String> overpassType;
         protected HistoryComboBox overpassQuery;
         private static MirroredDownloadDialog instance;
@@ -137,5 +137,5 @@
         @Override
         protected void buildMainPanelAboveDownloadSelections(JPanel pnl) {
-            overpassType = new JComboBox/*<String>*/(new String[]{"*", "node", "way", "relation"});
+            overpassType = new JComboBox<>(new String[]{"*", "node", "way", "relation"});
             pnl.add(new JLabel(tr("Object type: ")), GBC.std().insets(5, 5, 5, 5));
             pnl.add(overpassType, GBC.eol().fill(GridBagConstraints.HORIZONTAL));
Index: applications/editors/josm/plugins/mirrored_download/src/mirrored_download/UrlSelectionDialog.java
===================================================================
--- applications/editors/josm/plugins/mirrored_download/src/mirrored_download/UrlSelectionDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/mirrored_download/src/mirrored_download/UrlSelectionDialog.java	(revision 30532)
@@ -31,5 +31,5 @@
   private JDialog jDialog = null;
   private JTabbedPane tabbedPane = null;
-  private JComboBox cbSelectUrl = null;
+  private JComboBox<String> cbSelectUrl = null;
   private JCheckBox cbAddMeta = null;
 
@@ -60,5 +60,5 @@
     contentPane.add(label);
 
-    cbSelectUrl = new JComboBox();
+    cbSelectUrl = new JComboBox<>();
     cbSelectUrl.setEditable(true);
 
Index: applications/editors/josm/plugins/namemanager/src/org/openstreetmap/josm/plugins/namemanager/dialog/NameManagerDialog.java
===================================================================
--- applications/editors/josm/plugins/namemanager/src/org/openstreetmap/josm/plugins/namemanager/dialog/NameManagerDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/namemanager/src/org/openstreetmap/josm/plugins/namemanager/dialog/NameManagerDialog.java	(revision 30532)
@@ -77,5 +77,5 @@
     private List<Way> waysInsideSelectedArea;
     private JTabbedPane tabPanel;
-    private JComboBox country;
+    private JComboBox<String> country;
     private JLabel labelLevel1;
     private JTextField level1;
@@ -138,5 +138,5 @@
         buildings.setSelected(false);
         JLabel labelCountry = new JLabel("  " + tr(COUNTRY));
-        country = new JComboBox();
+        country = new JComboBox<>();
         labelLevel1 = new JLabel("  level1");
         level1 = new JTextField();
Index: applications/editors/josm/plugins/nearclick/.project
===================================================================
--- applications/editors/josm/plugins/nearclick/.project	(revision 30531)
+++ applications/editors/josm/plugins/nearclick/.project	(revision 30532)
@@ -11,18 +11,7 @@
 			</arguments>
 		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
Index: applications/editors/josm/plugins/opendata/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- applications/editors/josm/plugins/opendata/.settings/org.eclipse.jdt.core.prefs	(revision 30531)
+++ applications/editors/josm/plugins/opendata/.settings/org.eclipse.jdt.core.prefs	(revision 30532)
@@ -1,3 +1,9 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
@@ -18,4 +24,5 @@
 org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
 org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
 org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
@@ -31,5 +38,7 @@
 org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
 org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
 org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
 org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
@@ -40,12 +49,18 @@
 org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
 org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
 org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
 org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
 org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
 org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
 org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
@@ -55,8 +70,10 @@
 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
 org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
 org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
 org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
 org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
 org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
@@ -77,4 +94,5 @@
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/WayCombiner.java	(revision 30532)
@@ -56,5 +56,5 @@
 
         // remove duplicates, preserving order
-        ways = new LinkedHashSet<Way>(ways);
+        ways = new LinkedHashSet<>(ways);
 
         // try to build a new way which includes all the combined
@@ -71,6 +71,6 @@
         TagCollection wayTags = TagCollection.unionOfAllPrimitives(ways);
 
-        List<Way> reversedWays = new LinkedList<Way>();
-        List<Way> unreversedWays = new LinkedList<Way>();
+        List<Way> reversedWays = new LinkedList<>();
+        List<Way> unreversedWays = new LinkedList<>();
         for (Way w: ways) {
             if ((path.indexOf(w.getNode(0)) + 1) == path.lastIndexOf(w.getNode(1))) {
@@ -99,8 +99,8 @@
             // if there are still reversed ways with direction-dependent tags, reverse their tags
             if (!reversedWays.isEmpty()) {
-                List<Way> unreversedTagWays = new ArrayList<Way>(ways);
+                List<Way> unreversedTagWays = new ArrayList<>(ways);
                 unreversedTagWays.removeAll(reversedWays);
                 ReverseWayTagCorrector reverseWayTagCorrector = new ReverseWayTagCorrector();
-                List<Way> reversedTagWays = new ArrayList<Way>();
+                List<Way> reversedTagWays = new ArrayList<>();
                 Collection<Command> changePropertyCommands =  null;
                 for (Way w : reversedWays) {
@@ -149,5 +149,5 @@
         }
 
-        LinkedList<Way> deletedWays = new LinkedList<Way>(ways);
+        LinkedList<Way> deletedWays = new LinkedList<>(ways);
         deletedWays.remove(targetWay);
 
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModulePreference.java	(revision 30532)
@@ -219,5 +219,5 @@
             return false;
         if (model.isActiveModulesChanged()) {
-            LinkedList<String> l = new LinkedList<String>(model.getSelectedModuleNames());
+            LinkedList<String> l = new LinkedList<>(model.getSelectedModuleNames());
             Collections.sort(l);
             Main.pref.putCollection(PREF_MODULES, l);
@@ -446,14 +446,14 @@
     static private class ModuleConfigurationSitesPanel extends JPanel {
 
-        private DefaultListModel model;
+        private DefaultListModel<String> model;
 
         protected void build() {
             setLayout(new GridBagLayout());
             add(new JLabel(tr("Add Open Data Module description URL.")), GBC.eol());
-            model = new DefaultListModel();
+            model = new DefaultListModel<>();
             for (String s : OdPreferenceSetting.getModuleSites()) {
                 model.addElement(s);
             }
-            final JList list = new JList(model);
+            final JList<String> list = new JList<>(model);
             add(new JScrollPane(list), GBC.std().fill());
             JPanel buttons = new JPanel(new GridBagLayout());
@@ -519,7 +519,7 @@
         public List<String> getUpdateSites() {
             if (model.getSize() == 0) return Collections.emptyList();
-            List<String> ret = new ArrayList<String>(model.getSize());
+            List<String> ret = new ArrayList<>(model.getSize());
             for (int i=0; i< model.getSize();i++){
-                ret.add((String)model.get(i));
+                ret.add(model.get(i));
             }
             return ret;
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModulePreferencesModel.java	(revision 30532)
@@ -20,13 +20,9 @@
 import org.openstreetmap.josm.plugins.opendata.core.modules.ModuleInformation;
 
-/**
- * TODO
- *
- */
 public class ModulePreferencesModel extends Observable implements OdConstants {
-    private final ArrayList<ModuleInformation> availableModules = new ArrayList<ModuleInformation>();
-    private final ArrayList<ModuleInformation> displayedModules = new ArrayList<ModuleInformation>();
-    private final HashMap<ModuleInformation, Boolean> selectedModulesMap = new HashMap<ModuleInformation, Boolean>();
-    private Set<String> pendingDownloads = new HashSet<String>();
+    private final ArrayList<ModuleInformation> availableModules = new ArrayList<>();
+    private final ArrayList<ModuleInformation> displayedModules = new ArrayList<>();
+    private final HashMap<ModuleInformation, Boolean> selectedModulesMap = new HashMap<>();
+    private Set<String> pendingDownloads = new HashSet<>();
     private String filterExpression;
     private final Set<String> currentActiveModules;
@@ -37,5 +33,5 @@
     
     public ModulePreferencesModel() {
-    	currentActiveModules = new HashSet<String>();
+    	currentActiveModules = new HashSet<>();
     	currentActiveModules.addAll(getModules(currentActiveModules));
     }
@@ -66,5 +62,5 @@
         sort();
         filterDisplayedModules(filterExpression);
-        Set<String> activeModules = new HashSet<String>();
+        Set<String> activeModules = new HashSet<>();
         activeModules.addAll(getModules(activeModules));
         for (ModuleInformation pi: availableModules) {
@@ -101,5 +97,5 @@
         sort();
         filterDisplayedModules(filterExpression);
-        Set<String> activeModules = new HashSet<String>();
+        Set<String> activeModules = new HashSet<>();
         activeModules.addAll(getModules(activeModules));
         for (ModuleInformation pi: availableModules) {
@@ -120,5 +116,5 @@
      */
     public List<ModuleInformation> getSelectedModules() {
-        List<ModuleInformation> ret = new LinkedList<ModuleInformation>();
+        List<ModuleInformation> ret = new LinkedList<>();
         for (ModuleInformation pi: availableModules) {
             if (selectedModulesMap.get(pi) == null) {
@@ -138,5 +134,5 @@
      */
     public Set<String> getSelectedModuleNames() {
-        Set<String> ret = new HashSet<String>();
+        Set<String> ret = new HashSet<>();
         for (ModuleInformation pi: getSelectedModules()) {
             ret.add(pi.name);
@@ -177,5 +173,5 @@
      */
     public List<ModuleInformation> getModulesScheduledForUpdateOrDownload() {
-        List<ModuleInformation> ret = new ArrayList<ModuleInformation>();
+        List<ModuleInformation> ret = new ArrayList<>();
         for (String module: pendingDownloads) {
             ModuleInformation pi = getModuleInformation(module);
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NeptuneReader.java	(revision 30532)
@@ -76,5 +76,5 @@
 	public static final String OSM_FERRY = "ferry";
 
-	private static final List<URL> schemas = new ArrayList<URL>();
+	private static final List<URL> schemas = new ArrayList<>();
 	static {
 		schemas.add(NeptuneReader.class.getResource(NEPTUNE_XSD));
@@ -83,5 +83,5 @@
 	private ChouettePTNetworkType root;
 	
-	private final Map<String, OsmPrimitive> tridentObjects = new HashMap<String, OsmPrimitive>();
+	private final Map<String, OsmPrimitive> tridentObjects = new HashMap<>();
 	
 	public static final boolean acceptsXmlNeptuneFile(File file) {
@@ -133,5 +133,6 @@
 		JAXBContext jc = JAXBContext.newInstance(packageName, NeptuneReader.class.getClassLoader());
 		Unmarshaller u = jc.createUnmarshaller();
-		JAXBElement<T> doc = (JAXBElement<T>)u.unmarshal(inputStream);
+		@SuppressWarnings("unchecked")
+        JAXBElement<T> doc = (JAXBElement<T>)u.unmarshal(inputStream);
 		return doc.getValue();
 	}
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NetworkReader.java	(revision 30532)
@@ -45,5 +45,5 @@
      * File readers
      */
-    public static final Map<String, Class<? extends AbstractReader>> FILE_READERS = new HashMap<String, Class<? extends AbstractReader>>();
+    public static final Map<String, Class<? extends AbstractReader>> FILE_READERS = new HashMap<>();
     static {
         FILE_READERS.put(CSV_EXT, CsvReader.class);
@@ -58,5 +58,5 @@
     }
     
-    public static final Map<String, Class<? extends AbstractReader>> FILE_AND_ARCHIVE_READERS = new HashMap<String, Class<? extends AbstractReader>>(FILE_READERS);
+    public static final Map<String, Class<? extends AbstractReader>> FILE_AND_ARCHIVE_READERS = new HashMap<>(FILE_READERS);
     static {
         FILE_AND_ARCHIVE_READERS.put(ZIP_EXT, ZipReader.class);
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/ProjectionChooser.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/ProjectionChooser.java	(revision 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/ProjectionChooser.java	(revision 30532)
@@ -18,5 +18,4 @@
 import org.openstreetmap.josm.tools.GBC;
 
-@SuppressWarnings("serial")
 public class ProjectionChooser extends ExtendedDialog {
 
@@ -29,5 +28,6 @@
      * Combobox with all projections available
      */
-    private final JComboBox projectionCombo = new JComboBox(ProjectionPreference.getProjectionChoices().toArray());
+    private final JComboBox<ProjectionChoice> projectionCombo = new JComboBox<>(
+            ProjectionPreference.getProjectionChoices().toArray(new ProjectionChoice[0]));
 
 	public ProjectionChooser(Component parent) {
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ArchiveReader.java	(revision 30532)
@@ -59,5 +59,5 @@
         
         final File temp = OdUtils.createTempDir();
-        final List<File> candidates = new ArrayList<File>();
+        final List<File> candidates = new ArrayList<>();
         
         try {
@@ -70,5 +70,5 @@
             
             if (promptUser && candidates.size() > 1) {
-                DialogPrompter<CandidateChooser> prompt = new DialogPrompter() {
+                DialogPrompter<CandidateChooser> prompt = new DialogPrompter<CandidateChooser>() {
                     @Override
                     protected CandidateChooser buildDialog() {
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/CandidateChooser.java	(revision 30532)
@@ -27,6 +27,5 @@
     private final JPanel projPanel = new JPanel(new GridBagLayout());
 
-    //private final Map<JCheckBox, File> checkBoxes = new HashMap<JCheckBox, File>();
-    private final JComboBox fileCombo;
+    private final JComboBox<File> fileCombo;
 
 	public CandidateChooser(Component parent, List<File> candidates) {
@@ -37,5 +36,5 @@
 
 		@Override
-		public Component getListCellRendererComponent(JList list, Object value,
+		public Component getListCellRendererComponent(JList<?> list, Object value,
 				int index, boolean isSelected, boolean cellHasFocus) {
 			super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
@@ -49,5 +48,5 @@
 	protected CandidateChooser(Component parent, String title, String[] buttonTexts, List<File> candidates) {
 		super(parent, title, buttonTexts);
-		this.fileCombo = new JComboBox(candidates.toArray());
+		this.fileCombo = new JComboBox<>(candidates.toArray(new File[0]));
 		this.fileCombo.setRenderer(new Renderer());
 		addGui(candidates);
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/AbstractMapInfoReader.java	(revision 30532)
@@ -75,5 +75,5 @@
 	
 	protected void parseColumns(String[] words) {
-		columns = new ArrayList<String>();
+		columns = new ArrayList<>();
 		numcolumns = Integer.parseInt(words[1]);
 	}
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/DefaultShpHandler.java	(revision 30532)
@@ -38,5 +38,5 @@
 
 	private static final List<Pair<org.opengis.referencing.datum.Ellipsoid, Ellipsoid>> 
-		ellipsoids = new ArrayList<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));
@@ -44,5 +44,5 @@
 	}
 	
-	protected static final Double get(ParameterValueGroup values, ParameterDescriptor desc) {
+	protected static final Double get(ParameterValueGroup values, ParameterDescriptor<?> desc) {
 		return (Double) values.parameter(desc.getName().getCode()).getValue();
 	}
@@ -64,5 +64,5 @@
 			return CRS.findMathTransform(getCrsFor(sourceCRS.getName().getCode()), targetCRS, lenient);
 		} else if (sourceCRS instanceof AbstractDerivedCRS && sourceCRS.getName().getCode().equalsIgnoreCase("Lambert_Conformal_Conic")) {
-			List<MathTransform> result = new ArrayList<MathTransform>();
+			List<MathTransform> result = new ArrayList<>();
 			AbstractDerivedCRS crs = (AbstractDerivedCRS) sourceCRS;
 			MathTransform transform = crs.getConversionFromBase().getMathTransform();
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GeographicReader.java	(revision 30532)
@@ -72,5 +72,5 @@
 
 	public GeographicReader(GeographicHandler handler, GeographicHandler[] defaultHandlers) {
-		this.nodes = new HashMap<LatLon, Node>();
+		this.nodes = new HashMap<>();
 		this.handler = handler;
 		this.defaultHandlers = defaultHandlers;
@@ -256,5 +256,5 @@
 			
 			if (findSimiliarCrs) { 
-				List<CoordinateReferenceSystem> candidates = new ArrayList<CoordinateReferenceSystem>();
+				List<CoordinateReferenceSystem> candidates = new ArrayList<>();
 				
 				// Find matching CRS with Bursa Wolf parameters in EPSG database
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GmlReader.java	(revision 30532)
@@ -144,8 +144,8 @@
 	
 	private void parseFeatureMember(Component parent) throws XMLStreamException, GeoCrsException, FactoryException, UserCancelException, GeoMathTransformException, MismatchedDimensionException, TransformException {
-		List<OsmPrimitive> list = new ArrayList<OsmPrimitive>();
+		List<OsmPrimitive> list = new ArrayList<>();
 		Way way = null;
 		Node node = null;
-		Map<String, String> tags = new HashMap<String, String>();
+		Map<String, String> tags = new HashMap<>();
 		while (parser.hasNext()) {
             int event = parser.next();
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/KmlReader.java	(revision 30532)
@@ -45,5 +45,5 @@
 
     private XMLStreamReader parser;
-    private Map<LatLon, Node> nodes = new HashMap<LatLon, Node>();
+    private Map<LatLon, Node> nodes = new HashMap<>();
     
     public KmlReader(XMLStreamReader parser) {
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/ShpReader.java	(revision 30532)
@@ -9,4 +9,5 @@
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.Serializable;
 import java.nio.charset.Charset;
 import java.nio.charset.IllegalCharsetNameException;
@@ -56,5 +57,5 @@
 
 	private final ShpHandler handler;
-	private final Set<OsmPrimitive> featurePrimitives = new HashSet<OsmPrimitive>();
+	private final Set<OsmPrimitive> featurePrimitives = new HashSet<>();
 	
 	public ShpReader(ShpHandler handler) {
@@ -174,5 +175,5 @@
 		try {
 			if (file != null) { 
-		        Map params = new HashMap();
+		        Map<String, Serializable> params = new HashMap<>();
 		        Charset charset = null;
 		        params.put(ShapefileDataStoreFactory.URLP.key, file.toURI().toURL());
@@ -194,7 +195,7 @@
 		        if (charset != null) {
 		            Main.info("Using charset "+charset);
-		            params.put(ShapefileDataStoreFactory.DBFCHARSET.key, charset);
+		            params.put(ShapefileDataStoreFactory.DBFCHARSET.key, charset.name());
 		        }
-				DataStore dataStore = new ShapefileDataStoreFactory().createDataStore(params);//FIXME
+				DataStore dataStore = new ShapefileDataStoreFactory().createDataStore(params);
 				if (dataStore == null) {
 					throw new IOException(tr("Unable to find a data store for file {0}", file.getName()));
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/OdsReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/OdsReader.java	(revision 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/OdsReader.java	(revision 30532)
@@ -65,5 +65,5 @@
 			}
 
-			List<String> result = new ArrayList<String>();
+			List<String> result = new ArrayList<>();
 			boolean allFieldsBlank = true;
 			for (TableTableCell cell : row.getAllCells()) {
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetReader.java	(revision 30532)
@@ -97,5 +97,5 @@
 		System.out.println("Header: "+Arrays.toString(header));
 		
-		Map<ProjectionPatterns, List<CoordinateColumns>> projColumns = new HashMap<ProjectionPatterns, List<CoordinateColumns>>();
+		Map<ProjectionPatterns, List<CoordinateColumns>> projColumns = new HashMap<>();
 		
 		for (int i = 0; i<header.length; i++) {
@@ -103,5 +103,5 @@
 			    List<CoordinateColumns> columns = projColumns.get(pp);
 			    if (columns == null) {
-			        projColumns.put(pp, columns = new ArrayList<CoordinateColumns>());
+			        projColumns.put(pp, columns = new ArrayList<>());
 			    }
 				CoordinateColumns col = columns.isEmpty() ? null : columns.get(columns.size()-1);
@@ -116,5 +116,5 @@
 		}
 
-		final List<CoordinateColumns> columns = new ArrayList<CoordinateColumns>();
+		final List<CoordinateColumns> columns = new ArrayList<>();
 		
 		for (ProjectionPatterns pp : projColumns.keySet()) {
@@ -180,6 +180,6 @@
 			}
 			
-            final Map<CoordinateColumns, EastNorth> ens = new HashMap<CoordinateColumns, EastNorth>();
-			final Map<CoordinateColumns, Node> nodes = new HashMap<CoordinateColumns, Node>();
+            final Map<CoordinateColumns, EastNorth> ens = new HashMap<>();
+			final Map<CoordinateColumns, Node> nodes = new HashMap<>();
 			for (CoordinateColumns c : columns) {
 			    nodes.put(c, new Node());
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/XlsReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/XlsReader.java	(revision 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/XlsReader.java	(revision 30532)
@@ -56,5 +56,5 @@
 			Row row = sheet.getRow(rowIndex++);
 			if (row != null) {
-				List<String> result = new ArrayList<String>();
+				List<String> result = new ArrayList<>();
 				for (Cell cell : row) {
 		            switch (cell.getCellType()) {
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdDataLayer.java	(revision 30532)
@@ -124,5 +124,5 @@
 	@Override
 	public Action[] getMenuEntries() {
-		List<Action> result = new ArrayList<Action>();
+		List<Action> result = new ArrayList<>();
 		for (Action entry : super.getMenuEntries()) {
 			result.add(entry);
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdDiffLayer.java	(revision 30532)
@@ -31,7 +31,7 @@
 		super(name);
 		this.dataLayer = dataLayer;
-		this.differentPrimitives = new ArrayList<Pair<OsmPrimitive,OsmPrimitive>>();
-		this.onlyInTlsPrimitives = new ArrayList<OsmPrimitive>();
-		this.onlyInOsmPrimitives = new ArrayList<OsmPrimitive>();
+		this.differentPrimitives = new ArrayList<>();
+		this.onlyInTlsPrimitives = new ArrayList<>();
+		this.onlyInOsmPrimitives = new ArrayList<>();
 		initDiff(dataLayer.data, dataLayer.osmLayer.data);
 	}
@@ -44,5 +44,5 @@
 					onlyInTlsPrimitives.add(p1);
 				} else if (!dataLayer.handler.equals(p1, p2)) {
-					differentPrimitives.add(new Pair<OsmPrimitive, OsmPrimitive>(p1, p2));
+					differentPrimitives.add(new Pair<>(p1, p2));
 				}
 			}
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdOsmDataLayer.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdOsmDataLayer.java	(revision 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdOsmDataLayer.java	(revision 30532)
@@ -41,5 +41,5 @@
 							if (nodes != null) {
 								for (Node n : nodes) {
-									List<OsmPrimitive> refferingAllowedWays = new ArrayList<OsmPrimitive>();
+									List<OsmPrimitive> refferingAllowedWays = new ArrayList<>();
 									for (OsmPrimitive referrer : n.getReferrers()) {
 										if (referrer instanceof Way && !dataLayer.handler.isForbidden(referrer)) {
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/licenses/License.java	(revision 30532)
@@ -17,6 +17,6 @@
 	public static final LOOL LOOL = new LOOL();
 	
-	private final Map<String, URL> urls = new HashMap<String, URL>();
-	private final Map<String, URL> summaryURLs = new HashMap<String, URL>();
+	private final Map<String, URL> urls = new HashMap<>();
+	private final Map<String, URL> summaryURLs = new HashMap<>();
 	
 	private Icon icon;
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/AbstractModule.java	(revision 30532)
@@ -19,7 +19,7 @@
 public abstract class AbstractModule implements Module, OdConstants {
 
-	protected final List<Class<? extends AbstractDataSetHandler>> handlers = new ArrayList<Class <? extends AbstractDataSetHandler>>();
+	protected final List<Class<? extends AbstractDataSetHandler>> handlers = new ArrayList<>();
 
-	private final List<AbstractDataSetHandler> instanciatedHandlers = new ArrayList<AbstractDataSetHandler>();
+	private final List<AbstractDataSetHandler> instanciatedHandlers = new ArrayList<>();
 
 	protected final ModuleInformation info;
@@ -46,5 +46,5 @@
 	@Override
 	public SourceProvider getMapPaintStyleSourceProvider() {
-		final List<SourceEntry> sources = new ArrayList<SourceEntry>();
+		final List<SourceEntry> sources = new ArrayList<>();
 		for (AbstractDataSetHandler handler : getInstanciatedHandlers()) {
 			ExtendedSourceEntry src;
@@ -83,5 +83,5 @@
 	@Override
 	public SourceProvider getPresetSourceProvider() {
-		final List<SourceEntry> sources = new ArrayList<SourceEntry>();
+		final List<SourceEntry> sources = new ArrayList<>();
 		for (AbstractDataSetHandler handler : getInstanciatedHandlers()) {
 			if (handler != null && handler.getTaggingPreset() != null) {
@@ -99,5 +99,5 @@
 	@Override
 	public final List<AbstractDataSetHandler> getNewlyInstanciatedHandlers() {
-		List<AbstractDataSetHandler> result = new ArrayList<AbstractDataSetHandler>();
+		List<AbstractDataSetHandler> result = new ArrayList<>();
 		for (Class<? extends AbstractDataSetHandler> handlerClass : handlers) {
 			if (handlerClass != null) {
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleDownloadTask.java	(revision 30532)
@@ -32,7 +32,7 @@
  */
 public class ModuleDownloadTask extends PleaseWaitRunnable{
-    private final Collection<ModuleInformation> toUpdate = new LinkedList<ModuleInformation>();
-    private final Collection<ModuleInformation> failed = new LinkedList<ModuleInformation>();
-    private final Collection<ModuleInformation> downloaded = new LinkedList<ModuleInformation>();
+    private final Collection<ModuleInformation> toUpdate = new LinkedList<>();
+    private final Collection<ModuleInformation> failed = new LinkedList<>();
+    private final Collection<ModuleInformation> downloaded = new LinkedList<>();
     //private Exception lastException;
     private boolean canceled;
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleHandler.java	(revision 30532)
@@ -61,10 +61,10 @@
      * All installed and loaded modules (resp. their main classes)
      */
-    public final static Collection<Module> moduleList = new LinkedList<Module>();
+    public final static Collection<Module> moduleList = new LinkedList<>();
 
     /**
      * Add here all ClassLoader whose resource should be searched.
      */
-    private static final List<ClassLoader> sources = new LinkedList<ClassLoader>();
+    private static final List<ClassLoader> sources = new LinkedList<>();
 
     static {
@@ -198,5 +198,5 @@
     public static ClassLoader createClassLoader(Collection<ModuleInformation> modules) {
         // iterate all modules and collect all libraries of all modules:
-        List<URL> allModuleLibraries = new LinkedList<URL>();
+        List<URL> allModuleLibraries = new LinkedList<>();
         File moduleDir = OdPlugin.getInstance().getModulesDirectory();
         for (ModuleInformation info : modules) {
@@ -269,5 +269,5 @@
             monitor.beginTask(tr("Loading modules ..."));
             monitor.subTask(tr("Checking module preconditions..."));
-            List<ModuleInformation> toLoad = new LinkedList<ModuleInformation>();
+            List<ModuleInformation> toLoad = new LinkedList<>();
             for (ModuleInformation pi: modules) {
                 if (checkLoadPreconditions(parent, modules, pi)) {
@@ -316,5 +316,5 @@
                 return null;
             }
-            HashMap<String, ModuleInformation> ret = new HashMap<String, ModuleInformation>();
+            HashMap<String, ModuleInformation> ret = new HashMap<>();
             for (ModuleInformation pi: task.getAvailableModules()) {
                 ret.put(pi.name, pi);
@@ -358,5 +358,5 @@
      */
     public static List<ModuleInformation> buildListOfModulesToLoad(Component parent) {
-        Set<String> modules = new HashSet<String>();
+        Set<String> modules = new HashSet<>();
         modules.addAll(Main.pref.getCollection(PREF_MODULES,  new LinkedList<String>()));
         if (System.getProperty("josm."+PREF_MODULES) != null) {
@@ -364,5 +364,5 @@
         }
         Map<String, ModuleInformation> infos = loadLocallyAvailableModuleInformation(null);
-        List<ModuleInformation> ret = new LinkedList<ModuleInformation>();
+        List<ModuleInformation> ret = new LinkedList<>();
         for (Iterator<String> it = modules.iterator(); it.hasNext();) {
             String module = it.next();
@@ -448,5 +448,5 @@
             // filter modules which actually have to be updated
             //
-            Collection<ModuleInformation> modulesToUpdate = new ArrayList<ModuleInformation>();
+            Collection<ModuleInformation> modulesToUpdate = new ArrayList<>();
             for(ModuleInformation pi: modules) {
                 if (pi.isUpdateRequired()) {
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleInformation.java	(revision 30532)
@@ -46,6 +46,6 @@
     public String iconPath;
     public ImageIcon icon;
-    public List<URL> libraries = new LinkedList<URL>();
-    public final Map<String, String> attr = new TreeMap<String, String>();
+    public List<URL> libraries = new LinkedList<>();
+    public final Map<String, String> attr = new TreeMap<>();
 
     /**
@@ -245,4 +245,5 @@
      * @return the loaded class
      */
+    @SuppressWarnings("unchecked")
     public Class<? extends Module> loadClass(ClassLoader classLoader) throws ModuleException {
         if (className == null)
@@ -265,5 +266,5 @@
     public static Collection<String> getModuleLocations() {
         Collection<String> locations = Main.pref.getAllPossiblePreferenceDirs();
-        Collection<String> all = new ArrayList<String>(locations.size());
+        Collection<String> all = new ArrayList<>(locations.size());
         for (String s : locations) {
             all.add(s+"plugins/opendata/modules");
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleListParser.java	(revision 30532)
@@ -58,5 +58,5 @@
      */
     public List<ModuleInformation> parse(InputStream in) throws ModuleListParseException{
-        List<ModuleInformation> ret = new LinkedList<ModuleInformation>();
+        List<ModuleInformation> ret = new LinkedList<>();
         BufferedReader r = null;
         try {
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ReadLocalModuleInformationTask.java	(revision 30532)
@@ -18,5 +18,4 @@
 import org.openstreetmap.josm.io.OsmTransferException;
 import org.openstreetmap.josm.tools.ImageProvider;
-import org.openstreetmap.josm.tools.Utils;
 import org.xml.sax.SAXException;
 
@@ -41,10 +40,10 @@
     public ReadLocalModuleInformationTask() {
         super(tr("Reading local module information.."), false);
-        availableModules = new HashMap<String, ModuleInformation>();
+        availableModules = new HashMap<>();
     }
 
     public ReadLocalModuleInformationTask(ProgressMonitor monitor) {
         super(tr("Reading local module information.."),monitor, false);
-        availableModules = new HashMap<String, ModuleInformation>();
+        availableModules = new HashMap<>();
     }
 
@@ -225,5 +224,5 @@
      */
     public List<ModuleInformation> getAvailableModules() {
-        return new ArrayList<ModuleInformation>(availableModules.values());
+        return new ArrayList<>(availableModules.values());
     }
 
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ReadRemoteModuleInformationTask.java	(revision 30532)
@@ -53,5 +53,5 @@
             this.sites = Collections.emptySet();
         }
-        availableModules = new LinkedList<ModuleInformation>();
+        availableModules = new LinkedList<>();
 
     }
@@ -297,5 +297,5 @@
 
         // collect old cache files and remove if no longer in use
-        List<File> siteCacheFiles = new LinkedList<File>();
+        List<File> siteCacheFiles = new LinkedList<>();
         for (String location : ModuleInformation.getModuleLocations()) {
             File [] f = new File(location).listFiles(
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/util/NamesFrUtils.java	(revision 30532)
@@ -31,5 +31,5 @@
 	
 	private static Map<String, String> initDictionary() {
-		Map<String, String> result = new HashMap<String, String>();
+		Map<String, String> result = new HashMap<>();
 		try {
 			BufferedReader reader = new BufferedReader(new InputStreamReader(
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 30531)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/util/OdUtils.java	(revision 30532)
@@ -29,5 +29,5 @@
     
 	public static final String[] stripQuotesAndExtraChars(String[] split, String sep) {
-		List<String> result = new ArrayList<String>();
+		List<String> result = new ArrayList<>();
 		boolean append = false;
 		for (int i = 0; i<split.length; i++) {
Index: applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/gui/OsbBugListCellRenderer.java
===================================================================
--- applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/gui/OsbBugListCellRenderer.java	(revision 30531)
+++ applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/gui/OsbBugListCellRenderer.java	(revision 30532)
@@ -41,10 +41,10 @@
 import org.openstreetmap.josm.plugins.osb.OsbPlugin;
 
-public class OsbBugListCellRenderer implements ListCellRenderer {
+public class OsbBugListCellRenderer implements ListCellRenderer<OsbListItem> {
 
     private Color background = Color.WHITE;
     private Color altBackground = new Color(250, 250, 220);
 
-    public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected,
+    public Component getListCellRendererComponent(JList<? extends OsbListItem> list, OsbListItem item, int index, boolean isSelected,
             boolean cellHasFocus) {
 
@@ -64,5 +64,4 @@
         }
 
-        OsbListItem item = (OsbListItem) value;
         Node n = item.getNode();
         Icon icon = null;
@@ -86,4 +85,3 @@
         return label;
     }
-
 }
Index: applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/gui/OsbDialog.java
===================================================================
--- applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/gui/OsbDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/gui/OsbDialog.java	(revision 30532)
@@ -93,7 +93,7 @@
     private static final long serialVersionUID = 1L;
     private JPanel bugListPanel, queuePanel;
-    private DefaultListModel bugListModel;
-    private JList bugList;
-    private JList queueList;
+    private DefaultListModel<OsbListItem> bugListModel;
+    private JList<OsbListItem> bugList;
+    private JList<OsbAction> queueList;
     private OsbPlugin osbPlugin;
     private boolean fireSelectionChanged = true;
@@ -120,6 +120,6 @@
         add(bugListPanel, BorderLayout.CENTER);
 
-        bugListModel = new DefaultListModel();
-        bugList = new JList(bugListModel);
+        bugListModel = new DefaultListModel<>();
+        bugList = new JList<>(bugListModel);
         bugList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
         bugList.addListSelectionListener(this);
@@ -180,5 +180,5 @@
         queuePanel = new JPanel(new BorderLayout());
         queuePanel.setName(tr("Queue"));
-        queueList = new JList(getActionQueue());
+        queueList = new JList<>(getActionQueue());
         queueList.setCellRenderer(new OsbQueueListCellRenderer());
         queuePanel.add(new JScrollPane(queueList), BorderLayout.CENTER);
@@ -241,5 +241,5 @@
     public synchronized void update(final DataSet dataset) {
         // create a new list model
-        bugListModel = new DefaultListModel();
+        bugListModel = new DefaultListModel<>();
         List<Node> sortedList = new ArrayList<Node>(dataset.getNodes());
         Collections.sort(sortedList, new BugComparator());
@@ -253,5 +253,5 @@
 
     public void valueChanged(ListSelectionEvent e) {
-        if (bugList.getSelectedValues().length == 0) {
+        if (bugList.getSelectedValuesList().isEmpty()) {
             addComment.setEnabled(false);
             closeIssue.setEnabled(false);
@@ -260,5 +260,5 @@
 
         List<OsmPrimitive> selected = new ArrayList<OsmPrimitive>();
-        for (Object listItem : bugList.getSelectedValues()) {
+        for (Object listItem : bugList.getSelectedValuesList()) {
             Node node = ((OsbListItem) listItem).getNode();
             selected.add(node);
Index: applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/gui/OsbQueueListCellRenderer.java
===================================================================
--- applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/gui/OsbQueueListCellRenderer.java	(revision 30531)
+++ applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/gui/OsbQueueListCellRenderer.java	(revision 30532)
@@ -43,10 +43,11 @@
 import org.openstreetmap.josm.plugins.osb.gui.action.OsbAction;
 
-public class OsbQueueListCellRenderer implements ListCellRenderer {
+public class OsbQueueListCellRenderer implements ListCellRenderer<OsbAction> {
 
     private Color background = Color.WHITE;
     private Color altBackground = new Color(250, 250, 220);
 
-    public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected,
+    @Override
+    public Component getListCellRendererComponent(JList<? extends OsbAction> list, OsbAction action, int index, boolean isSelected,
             boolean cellHasFocus) {
 
@@ -62,5 +63,4 @@
         }
 
-        OsbAction action = (OsbAction) value;
         Icon icon = null;
         if(action instanceof AddCommentAction) {
Index: applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/gui/action/ActionQueue.java
===================================================================
--- applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/gui/action/ActionQueue.java	(revision 30531)
+++ applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/gui/action/ActionQueue.java	(revision 30532)
@@ -5,5 +5,5 @@
 import javax.swing.AbstractListModel;
 
-public class ActionQueue extends AbstractListModel {
+public class ActionQueue extends AbstractListModel<OsbAction> {
 
     private LinkedList<OsbAction> queue = new LinkedList<OsbAction>();
@@ -25,5 +25,5 @@
     }
 
-    public boolean remove(Object o) {
+    public boolean remove(OsbAction o) {
         int index = queue.indexOf(o);
         if(index >= 0) {
@@ -52,8 +52,10 @@
     }
 
-    public Object getElementAt(int index) {
+    @Override
+    public OsbAction getElementAt(int index) {
         return queue.get(index);
     }
 
+    @Override
     public int getSize() {
         return queue.size();
Index: applications/editors/josm/plugins/pdfimport/src/pdfimport/LoadPdfDialog.java
===================================================================
--- applications/editors/josm/plugins/pdfimport/src/pdfimport/LoadPdfDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/pdfimport/src/pdfimport/LoadPdfDialog.java	(revision 30532)
@@ -120,5 +120,5 @@
 	 * Combobox with all projections available
 	 */
-	private JComboBox projectionCombo;
+	private JComboBox<ProjectionChoice> projectionCombo;
 	private JButton projectionPreferencesButton;
 	private JTextField minXField;
@@ -247,5 +247,5 @@
 		c.gridheight = 1;c.gridwidth = 1;c.weightx =1; c.weighty = 1; c.fill = GridBagConstraints.BOTH;
 
-		this.projectionCombo = new JComboBox();
+		this.projectionCombo = new JComboBox<>();
 		for (ProjectionChoice p: ProjectionPreference.getProjectionChoices()) {
 			this.projectionCombo.addItem(p);
Index: applications/editors/josm/plugins/photo_geotagging/src/org/openstreetmap/josm/plugins/photo_geotagging/GeotaggingAction.java
===================================================================
--- applications/editors/josm/plugins/photo_geotagging/src/org/openstreetmap/josm/plugins/photo_geotagging/GeotaggingAction.java	(revision 30531)
+++ applications/editors/josm/plugins/photo_geotagging/src/org/openstreetmap/josm/plugins/photo_geotagging/GeotaggingAction.java	(revision 30532)
@@ -12,6 +12,4 @@
 import java.io.IOException;
 import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.text.DecimalFormat;
 import java.util.ArrayList;
@@ -77,5 +75,5 @@
         cont.add(new JLabel(tr("Write position information into the exif header of the following files:")), GBC.eol());
 
-        DefaultListModel listModel = new DefaultListModel();
+        DefaultListModel<String> listModel = new DefaultListModel<>();
         DecimalFormat dFormatter = new DecimalFormat("###0.000000");
         for (ImageEntry e : images) {
@@ -84,5 +82,5 @@
         }
 
-        JList entryList = new JList(listModel);
+        JList<String> entryList = new JList<>(listModel);
 
         JScrollPane scroll = new JScrollPane(entryList);
@@ -101,5 +99,5 @@
 
         final String[] mTimeModeArray = {"----", tr("to gps time"), tr("to previous value (unchanged mtime)")};
-        final JComboBox mTimeMode = new JComboBox(mTimeModeArray);
+        final JComboBox<String> mTimeMode = new JComboBox<>(mTimeModeArray);
         {
             String mTimeModePref = Main.pref.get(MTIME_MODE, null);
Index: applications/editors/josm/plugins/public_transport/src/public_transport/GTFSImporterDialog.java
===================================================================
--- applications/editors/josm/plugins/public_transport/src/public_transport/GTFSImporterDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/public_transport/src/public_transport/GTFSImporterDialog.java	(revision 30532)
@@ -28,5 +28,5 @@
   private JDialog jDialog = null;
   private JTabbedPane tabbedPane = null;
-  private JComboBox cbStoptype = null;
+  private JComboBox<TransText> cbStoptype = null;
   private JList tracksList = null;
   private JTextField tfGPSTimeStart = null;
@@ -68,5 +68,5 @@
     contentPane.add(label);
 
-    cbStoptype = new JComboBox();
+    cbStoptype = new JComboBox<>();
     cbStoptype.setEditable(false);
     for(String type : stoptypes)
@@ -481,5 +481,4 @@
   public static double parseTime(String s)
   {
-    double result = 0;
     if ((s.charAt(2) != ':') || (s.charAt(2) != ':')
      || (s.length() < 8))
Index: applications/editors/josm/plugins/public_transport/src/public_transport/RoutePatternAction.java
===================================================================
--- applications/editors/josm/plugins/public_transport/src/public_transport/RoutePatternAction.java	(revision 30531)
+++ applications/editors/josm/plugins/public_transport/src/public_transport/RoutePatternAction.java	(revision 30532)
@@ -398,5 +398,5 @@
   private static JDialog jDialog = null;
   private static JTabbedPane tabbedPane = null;
-  private static DefaultListModel relsListModel = null;
+  private static DefaultListModel<RouteReference> relsListModel = null;
   private static TagTableModel requiredTagsData = null;
   private static CustomCellEditorTable requiredTagsTable = null;
@@ -410,5 +410,5 @@
   private static StoplistTableModel stoplistData = null;
   private static JTable stoplistTable = null;
-  private static JList relsList = null;
+  private static JList<RouteReference> relsList = null;
   private static JCheckBox cbRight = null;
   private static JCheckBox cbLeft = null;
@@ -418,6 +418,4 @@
   private static Vector< RelationMember > markedWays = new Vector< RelationMember >();
   private static Vector< RelationMember > markedNodes = new Vector< RelationMember >();
-
-  private static Relation copy = null;
 
   public RoutePatternAction() {
@@ -470,6 +468,6 @@
       contentPane.add(headline);
 
-      relsListModel = new DefaultListModel();
-      relsList = new JList(relsListModel);
+      relsListModel = new DefaultListModel<>();
+      relsList = new JList<>(relsListModel);
       JScrollPane rpListSP = new JScrollPane(relsList);
       String[] data = {"1", "2", "3", "4", "5", "6"};
@@ -584,5 +582,5 @@
       rowContent.add("route");
       requiredTagsData.addRow(rowContent);
-      JComboBox comboBox = new JComboBox();
+      JComboBox<String> comboBox = new JComboBox<>();
       comboBox.addItem("route");
       requiredTagsTable.setCellEditor(0, 1, new DefaultCellEditor(comboBox));
@@ -592,5 +590,5 @@
       rowContent.add(1, "bus");
       requiredTagsData.addRow(rowContent);
-      /*JComboBox*/ comboBox = new JComboBox();
+      /*JComboBox*/ comboBox = new JComboBox<>();
       comboBox.addItem("bus");
       comboBox.addItem("trolleybus");
@@ -743,5 +741,5 @@
       itineraryTable.setModel(itineraryData);
       /*JScrollPane*/ tableSP = new JScrollPane(itineraryTable);
-      /*JComboBox*/ comboBox = new JComboBox();
+      /*JComboBox*/ comboBox = new JComboBox<>();
       comboBox.addItem("");
       comboBox.addItem("forward");
@@ -867,5 +865,5 @@
       stoplistTable.setModel(stoplistData);
       /*JScrollPane*/ tableSP = new JScrollPane(stoplistTable);
-      /*JComboBox*/ comboBox = new JComboBox();
+      /*JComboBox*/ comboBox = new JComboBox<>();
       comboBox.addItem("");
       comboBox.addItem("forward_stop");
@@ -1109,9 +1107,8 @@
       Vector< RelationMember > itemsToReflect = new Vector< RelationMember >();
       Vector< RelationMember > otherItems = new Vector< RelationMember >();
-      int insPos = itineraryTable.getSelectedRow();
 
       // Temp
       Node firstNode = null;
-      Node lastNode = null;
+      //Node lastNode = null;
 
       for (int i = 0; i < currentRoute.getMembersCount(); ++i)
@@ -1136,5 +1133,5 @@
               firstNode = item.getWay().getNode(0);
           }
-          lastNode = item.getWay().getNode(item.getWay().getNodesCount() - 1);
+          //lastNode = item.getWay().getNode(item.getWay().getNodesCount() - 1);
         }
         else if (item.isNode())
Index: applications/editors/josm/plugins/public_transport/src/public_transport/StopImporterAction.java
===================================================================
--- applications/editors/josm/plugins/public_transport/src/public_transport/StopImporterAction.java	(revision 30531)
+++ applications/editors/josm/plugins/public_transport/src/public_transport/StopImporterAction.java	(revision 30532)
@@ -38,5 +38,5 @@
 {
   private static StopImporterDialog dialog = null;
-  private static DefaultListModel tracksListModel = null;
+  private static DefaultListModel<TrackReference> tracksListModel = null;
   private static GpxData data = null;
   private static TrackReference currentTrack = null;
@@ -62,8 +62,8 @@
   }
 
-  public DefaultListModel getTracksListModel()
+  public DefaultListModel<TrackReference> getTracksListModel()
   {
     if (tracksListModel == null)
-      tracksListModel = new DefaultListModel();
+      tracksListModel = new DefaultListModel<>();
     return tracksListModel;
   }
Index: applications/editors/josm/plugins/public_transport/src/public_transport/StopImporterDialog.java
===================================================================
--- applications/editors/josm/plugins/public_transport/src/public_transport/StopImporterDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/public_transport/src/public_transport/StopImporterDialog.java	(revision 30532)
@@ -33,6 +33,6 @@
   private JDialog jDialog = null;
   private JTabbedPane tabbedPane = null;
-  private JComboBox cbStoptype = null;
-  private JList tracksList = null;
+  private JComboBox<TransText> cbStoptype = null;
+  private JList<TrackReference> tracksList = null;
   private JTextField tfGPSTimeStart = null;
   private JTextField tfStopwatchStart = null;
@@ -80,6 +80,6 @@
     contentPane.add(label);
 
-    DefaultListModel tracksListModel = controller.getTracksListModel();
-    tracksList = new JList(tracksListModel);
+    DefaultListModel<TrackReference> tracksListModel = controller.getTracksListModel();
+    tracksList = new JList<>(tracksListModel);
     JScrollPane rpListSP = new JScrollPane(tracksList);
     String[] data = {"1", "2", "3", "4", "5", "6"};
@@ -114,5 +114,5 @@
     contentPane.add(label);
 
-    cbStoptype = new JComboBox();
+    cbStoptype = new JComboBox<>();
     cbStoptype.setEditable(false);
     for(String type : stoptypes)
@@ -640,5 +640,5 @@
   {
     stoplistTable.setModel(model);
-    JComboBox comboBox = new JComboBox();
+    JComboBox<TransText> comboBox = new JComboBox<>();
     comboBox.addItem(new TransText(null));
     comboBox.addItem(new TransText(marktr("yes")));
@@ -661,5 +661,5 @@
   {
     waypointTable.setModel(model);
-    JComboBox comboBox = new JComboBox();
+    JComboBox<TransText> comboBox = new JComboBox<>();
     comboBox.addItem(new TransText(null));
     comboBox.addItem(new TransText(marktr("yes")));
Index: applications/editors/josm/plugins/reltoolbox/src/relcontext/RelContextDialog.java
===================================================================
--- applications/editors/josm/plugins/reltoolbox/src/relcontext/RelContextDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/reltoolbox/src/relcontext/RelContextDialog.java	(revision 30532)
@@ -137,5 +137,5 @@
 
         final MouseListener relationMouseAdapter = new ChosenRelationMouseAdapter();
-        final JComboBox roleBox = new JComboBox();
+        final JComboBox<String> roleBox = new JComboBox<>();
         roleBoxModel = new RoleComboBoxModel(roleBox);
         roleBox.setModel(roleBoxModel);
@@ -620,15 +620,15 @@
             setEnabled(newRelation != null);
         }
-        }
+    }
         
-    private class RoleComboBoxModel extends AbstractListModel implements ComboBoxModel {
+    private class RoleComboBoxModel extends AbstractListModel<String> implements ComboBoxModel<String> {
         private List<String> roles = new ArrayList<String>();
         private int selectedIndex = -1;
-        private JComboBox combobox;
+        private JComboBox<String> combobox;
         private String membersRole;
         private final String EMPTY_ROLE = tr("<empty>");
         private final String ANOTHER_ROLE = tr("another...");
 
-        public RoleComboBoxModel( JComboBox combobox ) {
+        public RoleComboBoxModel( JComboBox<String> combobox ) {
             super();
             this.combobox = combobox;
@@ -708,5 +708,5 @@
         }
 
-        public Object getElementAt( int index ) {
+        public String getElementAt( int index ) {
             return getRole(index);
         }
Index: applications/editors/josm/plugins/reltoolbox/src/relcontext/actions/FindRelationAction.java
===================================================================
--- applications/editors/josm/plugins/reltoolbox/src/relcontext/actions/FindRelationAction.java	(revision 30531)
+++ applications/editors/josm/plugins/reltoolbox/src/relcontext/actions/FindRelationAction.java	(revision 30532)
@@ -37,5 +37,5 @@
         panel.add(searchField, BorderLayout.NORTH);
         final FindRelationListModel relationsData = new FindRelationListModel();
-        final JList relationsList = new JList(relationsData);
+        final JList<Relation> relationsList = new JList<>(relationsData);
         relationsList.setSelectionModel(relationsData.getSelectionModel());
         relationsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
@@ -167,5 +167,5 @@
      * I admit, some of it was copypasted from {@link org.openstreetmap.josm.gui.dialogs.RelationListDialog.RelationListModel}.
      */
-    protected class FindRelationListModel extends AbstractListModel {
+    protected class FindRelationListModel extends AbstractListModel<Relation> {
         private final ArrayList<Relation> relations = new ArrayList<Relation>();
         private DefaultListSelectionModel selectionModel;
@@ -184,19 +184,17 @@
         }
 
-        public Relation getRelation( int idx ) {
-            return relations.get(idx);
-        }
-
+        @Override
         public int getSize() {
             return relations.size();
         }
 
-        public Object getElementAt( int index ) {
-            return getRelation(index);
+        @Override
+        public Relation getElementAt( int index ) {
+            return relations.get(index);
         }
 
         public void setRelations(Collection<Relation> relations) {
             int selectedIndex = selectionModel.getMinSelectionIndex();
-            Relation sel =  selectedIndex < 0 ? null : getRelation(selectedIndex);
+            Relation sel =  selectedIndex < 0 ? null : getElementAt(selectedIndex);
             
             this.relations.clear();
Index: applications/editors/josm/plugins/roadsigns/src/org/openstreetmap/josm/plugins/roadsigns/RoadSignInputDialog.java
===================================================================
--- applications/editors/josm/plugins/roadsigns/src/org/openstreetmap/josm/plugins/roadsigns/RoadSignInputDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/roadsigns/src/org/openstreetmap/josm/plugins/roadsigns/RoadSignInputDialog.java	(revision 30532)
@@ -545,5 +545,5 @@
                 if (rowIndex == -1 || colIndex == -1)
                     return null;
-                int realColumnIndex = convertColumnIndexToModel(colIndex);
+                //int realColumnIndex = convertColumnIndexToModel(colIndex);
                 return (String) getValueAt(rowIndex, colIndex);
             }
@@ -623,9 +623,9 @@
                     List<String> values = new ArrayList<String>();
                     List<String> conditions = new ArrayList<String>();
-                    String ident;
+                    //String ident;
                     public TagEvaluater(Tag t) {
                         key = t.key.evaluate(env);
                         default_value = t.value.evaluate(env);
-                        ident = t.ident;
+                        //ident = t.ident;
                     }
 
@@ -858,5 +858,5 @@
 
         private List<PresetMetaData> presetsData;
-        private JComboBox selectionBox;
+        private JComboBox<PresetMetaData> selectionBox;
         JRadioButton rbAll, rbUseful;
 
@@ -865,5 +865,5 @@
             presetsData = RoadSignsPlugin.getAvailablePresetsMetaData();
 
-            selectionBox = new JComboBox(presetsData.toArray());
+            selectionBox = new JComboBox<>(presetsData.toArray(new PresetMetaData[0]));
             String code = Main.pref.get("plugin.roadsigns.preset.selection", null);
             if (code != null) {
Index: applications/editors/josm/plugins/routing/src/com/innovant/josm/plugin/routing/gui/RoutingDialog.java
===================================================================
--- applications/editors/josm/plugins/routing/src/com/innovant/josm/plugin/routing/gui/RoutingDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/routing/src/com/innovant/josm/plugin/routing/gui/RoutingDialog.java	(revision 30532)
@@ -52,6 +52,6 @@
 public class RoutingDialog extends ToggleDialog {
 
-    private final DefaultListModel model;
-    private JList jList = null;
+    private final DefaultListModel<String> model;
+    private JList<String> jList = null;
     private JScrollPane jScrollPane = null;
 
@@ -64,5 +64,5 @@
         super(tr("Routing"), "routing", tr("Open a list of routing nodes"),
                 Shortcut.registerShortcut("subwindow:routing", tr("Toggle: {0}", tr("Routing")), KeyEvent.VK_R, Shortcut.ALT_CTRL_SHIFT), 150);
-        model = new DefaultListModel();
+        model = new DefaultListModel<>();
         createLayout(getJScrollPane(), false, null);
     }
@@ -88,7 +88,7 @@
      * @return javax.swing.JList
      */
-    private JList getJList() {
+    private JList<String> getJList() {
         if (jList == null) {
-            jList = new JList();
+            jList = new JList<>();
             jList.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
             jList.setModel(model);
Index: applications/editors/josm/plugins/routing/src/com/innovant/josm/plugin/routing/gui/RoutingPreferenceDialog.java
===================================================================
--- applications/editors/josm/plugins/routing/src/com/innovant/josm/plugin/routing/gui/RoutingPreferenceDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/routing/src/com/innovant/josm/plugin/routing/gui/RoutingPreferenceDialog.java	(revision 30532)
@@ -110,5 +110,5 @@
                 JPanel p = new JPanel(new GridBagLayout());
                 p.add(new JLabel(tr("Weight")), GBC.std().insets(0, 0, 5, 0));
-                JComboBox key = new JComboBox();
+                JComboBox<String> key = new JComboBox<>();
                 for (OsmWayTypes pk : OsmWayTypes.values())
                     key.addItem(pk.getTag());
Index: applications/editors/josm/plugins/smed/.classpath
===================================================================
--- applications/editors/josm/plugins/smed/.classpath	(revision 30532)
+++ applications/editors/josm/plugins/smed/.classpath	(revision 30532)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/JOSM"/>
+	<classpathentry kind="output" path="build"/>
+</classpath>
Index: applications/editors/josm/plugins/smed/.project
===================================================================
--- applications/editors/josm/plugins/smed/.project	(revision 30532)
+++ applications/editors/josm/plugins/smed/.project	(revision 30532)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>JOSM-SeaMapEditor</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: applications/editors/josm/plugins/smed/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- applications/editors/josm/plugins/smed/.settings/org.eclipse.jdt.core.prefs	(revision 30532)
+++ applications/editors/josm/plugins/smed/.settings/org.eclipse.jdt.core.prefs	(revision 30532)
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
Index: applications/editors/josm/plugins/smed/src/panels/PanelLights.java
===================================================================
--- applications/editors/josm/plugins/smed/src/panels/PanelLights.java	(revision 30531)
+++ applications/editors/josm/plugins/smed/src/panels/PanelLights.java	(revision 30532)
@@ -18,5 +18,5 @@
 	public JLabel categoryLabel;
 
-	public JComboBox landCatBox;
+	public JComboBox<String> landCatBox;
 	public EnumMap<Cat, Integer> landCats = new EnumMap<Cat, Integer>(Cat.class);
 	private ActionListener alLandCatBox = new ActionListener() {
@@ -31,5 +31,5 @@
 		}
 	};
-	public JComboBox trafficCatBox;
+	public JComboBox<String> trafficCatBox;
 	public EnumMap<Cat, Integer> trafficCats = new EnumMap<Cat, Integer>(Cat.class);
 	private ActionListener alTrafficCatBox = new ActionListener() {
@@ -44,5 +44,5 @@
 		}
 	};
-	public JComboBox warningCatBox;
+	public JComboBox<String> warningCatBox;
 	public EnumMap<Cat, Integer> warningCats = new EnumMap<Cat, Integer>(Cat.class);
 	private ActionListener alWarningCatBox = new ActionListener() {
@@ -57,5 +57,5 @@
 		}
 	};
-	public JComboBox platformCatBox;
+	public JComboBox<String> platformCatBox;
 	public EnumMap<Cat, Integer> platformCats = new EnumMap<Cat, Integer>(Cat.class);
 	private ActionListener alPlatformCatBox = new ActionListener() {
@@ -70,5 +70,5 @@
 		}
 	};
-	public JComboBox pilotCatBox;
+	public JComboBox<String> pilotCatBox;
 	public EnumMap<Cat, Integer> pilotCats = new EnumMap<Cat, Integer>(Cat.class);
 	private ActionListener alPilotCatBox = new ActionListener() {
@@ -83,5 +83,5 @@
 		}
 	};
-	public JComboBox rescueCatBox;
+	public JComboBox<String> rescueCatBox;
 	public EnumMap<Cat, Integer> rescueCats = new EnumMap<Cat, Integer>(Cat.class);
 	private ActionListener alRescueCatBox = new ActionListener() {
@@ -96,5 +96,5 @@
 		}
 	};
-	public JComboBox radioCatBox;
+	public JComboBox<String> radioCatBox;
 	public EnumMap<Cat, Integer> radioCats = new EnumMap<Cat, Integer>(Cat.class);
 	private ActionListener alRadioCatBox = new ActionListener() {
@@ -109,5 +109,5 @@
 		}
 	};
-	public JComboBox radarCatBox;
+	public JComboBox<String> radarCatBox;
 	public EnumMap<Cat, Integer> radarCats = new EnumMap<Cat, Integer>(Cat.class);
 	private ActionListener alRadarCatBox = new ActionListener() {
@@ -123,5 +123,5 @@
 	};
 	public JLabel functionLabel;
-	public JComboBox functionBox;
+	public JComboBox<String> functionBox;
 	public EnumMap<Fnc, Integer> functions = new EnumMap<Fnc, Integer>(Fnc.class);
 	private ActionListener alfunctionBox = new ActionListener() {
@@ -261,5 +261,5 @@
 		functionLabel.setVisible(false);
 
-		functionBox = new JComboBox();
+		functionBox = new JComboBox<>();
 		functionBox.setBounds(new Rectangle(5, 110, 160, 18));
 		add(functionBox);
@@ -281,5 +281,5 @@
 		categoryLabel.setVisible(false);
 
-		landCatBox = new JComboBox();
+		landCatBox = new JComboBox<>();
 		landCatBox.setBounds(new Rectangle(5, 142, 160, 18));
 		add(landCatBox);
@@ -308,5 +308,5 @@
 		landCatBox.setVisible(false);
 
-		trafficCatBox = new JComboBox();
+		trafficCatBox = new JComboBox<>();
 		trafficCatBox.setBounds(new Rectangle(5, 140, 160, 20));
 		add(trafficCatBox);
@@ -325,5 +325,5 @@
 		trafficCatBox.setVisible(false);
 
-		warningCatBox = new JComboBox();
+		warningCatBox = new JComboBox<>();
 		warningCatBox.setBounds(new Rectangle(5, 140, 160, 20));
 		add(warningCatBox);
@@ -347,5 +347,5 @@
 		warningCatBox.setVisible(false);
 
-		platformCatBox = new JComboBox();
+		platformCatBox = new JComboBox<>();
 		platformCatBox.setBounds(new Rectangle(5, 140, 160, 20));
 		add(platformCatBox);
@@ -364,5 +364,5 @@
 		platformCatBox.setVisible(false);
 
-		pilotCatBox = new JComboBox();
+		pilotCatBox = new JComboBox<>();
 		pilotCatBox.setBounds(new Rectangle(5, 140, 160, 20));
 		add(pilotCatBox);
@@ -374,5 +374,5 @@
 		pilotCatBox.setVisible(false);
 
-		rescueCatBox = new JComboBox();
+		rescueCatBox = new JComboBox<>();
 		rescueCatBox.setBounds(new Rectangle(5, 140, 160, 20));
 		add(rescueCatBox);
@@ -391,5 +391,5 @@
 		rescueCatBox.setVisible(false);
 
-		radioCatBox = new JComboBox();
+		radioCatBox = new JComboBox<>();
 		radioCatBox.setBounds(new Rectangle(5, 140, 160, 20));
 		add(radioCatBox);
@@ -429,5 +429,5 @@
 		radioCatBox.setVisible(false);
 
-		radarCatBox = new JComboBox();
+		radarCatBox = new JComboBox<>();
 		radarCatBox.setBounds(new Rectangle(5, 140, 160, 20));
 		add(radarCatBox);
Index: applications/editors/josm/plugins/smed/src/panels/PanelLit.java
===================================================================
--- applications/editors/josm/plugins/smed/src/panels/PanelLit.java	(revision 30531)
+++ applications/editors/josm/plugins/smed/src/panels/PanelLit.java	(revision 30532)
@@ -39,5 +39,5 @@
 	};
 	public JLabel visibilityLabel;
-	public JComboBox visibilityBox;
+	public JComboBox<String> visibilityBox;
 	public EnumMap<Vis, Integer> visibilities = new EnumMap<Vis, Integer>(Vis.class);
 	private ActionListener alVisibility = new ActionListener() {
@@ -79,5 +79,5 @@
 	};
 	public JLabel categoryLabel;
-	public JComboBox categoryBox;
+	public JComboBox<String> categoryBox;
 	public EnumMap<Lit, Integer> categories = new EnumMap<Lit, Integer>(Lit.class);
 	private ActionListener alCategory = new ActionListener() {
@@ -115,5 +115,5 @@
 	};
 	public JLabel exhibitionLabel;
-	public JComboBox exhibitionBox;
+	public JComboBox<String> exhibitionBox;
 	public EnumMap<Exh, Integer> exhibitions = new EnumMap<Exh, Integer>(Exh.class);
 	private ActionListener alExhibition = new ActionListener() {
@@ -209,5 +209,5 @@
 		categoryLabel.setBounds(new Rectangle(185, 0, 165, 20));
 		add(categoryLabel);
-		categoryBox = new JComboBox();
+		categoryBox = new JComboBox<>();
 		categoryBox.setBounds(new Rectangle(185, 20, 165, 20));
 		add(categoryBox);
@@ -235,5 +235,5 @@
 		visibilityLabel.setBounds(new Rectangle(185, 40, 165, 20));
 		add(visibilityLabel);
-		visibilityBox = new JComboBox();
+		visibilityBox = new JComboBox<>();
 		visibilityBox.setBounds(new Rectangle(185, 60, 165, 20));
 		add(visibilityBox);
@@ -247,5 +247,5 @@
 		exhibitionLabel.setBounds(new Rectangle(280, 80, 70, 20));
 		add(exhibitionLabel);
-		exhibitionBox = new JComboBox();
+		exhibitionBox = new JComboBox<>();
 		exhibitionBox.setBounds(new Rectangle(280, 100, 70, 20));
 		add(exhibitionBox);
Index: applications/editors/josm/plugins/smed/src/panels/PanelMore.java
===================================================================
--- applications/editors/josm/plugins/smed/src/panels/PanelMore.java	(revision 30531)
+++ applications/editors/josm/plugins/smed/src/panels/PanelMore.java	(revision 30532)
@@ -44,5 +44,5 @@
 	};
 	public JLabel statusLabel;
-	public JComboBox statusBox;
+	public JComboBox<String> statusBox;
 	public EnumMap<Sts, Integer> statuses = new EnumMap<Sts, Integer>(Sts.class);
 	private ActionListener alStatus = new ActionListener() {
@@ -56,5 +56,5 @@
 	};
 	public JLabel constrLabel;
-	public JComboBox constrBox;
+	public JComboBox<String> constrBox;
 	public EnumMap<Cns, Integer> constructions = new EnumMap<Cns, Integer>(Cns.class);
 	private ActionListener alConstr = new ActionListener() {
@@ -68,5 +68,5 @@
 	};
 	public JLabel conLabel;
-	public JComboBox conBox;
+	public JComboBox<String> conBox;
 	public EnumMap<Con, Integer> conspicuities = new EnumMap<Con, Integer>(Con.class);
 	private ActionListener alCon = new ActionListener() {
@@ -80,5 +80,5 @@
 	};
 	public JLabel reflLabel;
-	public JComboBox reflBox;
+	public JComboBox<String> reflBox;
 	public EnumMap<Con, Integer> reflectivities = new EnumMap<Con, Integer>(Con.class);
 	private ActionListener alRefl = new ActionListener() {
@@ -235,5 +235,5 @@
 		statusLabel.setBounds(new Rectangle(250, 0, 100, 20));
 		add(statusLabel);
-		statusBox = new JComboBox();
+		statusBox = new JComboBox<>();
 		statusBox.setBounds(new Rectangle(250, 20, 100, 20));
 		addStsItem("", Sts.UNKSTS);
@@ -262,5 +262,5 @@
 		constrLabel.setBounds(new Rectangle(250, 40, 100, 20));
 		add(constrLabel);
-		constrBox = new JComboBox();
+		constrBox = new JComboBox<>();
 		constrBox.setBounds(new Rectangle(250, 60, 100, 20));
 		addCnsItem("", Cns.UNKCNS);
@@ -280,5 +280,5 @@
 		conLabel.setBounds(new Rectangle(250, 80, 100, 20));
 		add(conLabel);
-		conBox = new JComboBox();
+		conBox = new JComboBox<>();
 		conBox.setBounds(new Rectangle(250, 100, 100, 20));
 		addConItem("", Con.UNKCON);
@@ -291,5 +291,5 @@
 		reflLabel.setBounds(new Rectangle(250, 120, 100, 20));
 		add(reflLabel);
-		reflBox = new JComboBox();
+		reflBox = new JComboBox<>();
 		reflBox.setBounds(new Rectangle(250, 140, 100, 20));
 		addReflItem("", Con.UNKCON);
@@ -361,4 +361,3 @@
 		return button;
 	}
-
 }
Index: applications/editors/josm/plugins/smed/src/panels/PanelRadar.java
===================================================================
--- applications/editors/josm/plugins/smed/src/panels/PanelRadar.java	(revision 30531)
+++ applications/editors/josm/plugins/smed/src/panels/PanelRadar.java	(revision 30532)
@@ -28,5 +28,5 @@
 		}
 	};
-	private JComboBox radioCatBox;
+	private JComboBox<String> radioCatBox;
 	private EnumMap<Cat, Integer> radioCats = new EnumMap<Cat, Integer>(Cat.class);
 	private ActionListener alRadioCatBox = new ActionListener() {
@@ -175,5 +175,5 @@
 		add(aisButton);
 
-		radioCatBox = new JComboBox();
+		radioCatBox = new JComboBox<>();
 		radioCatBox.setBounds(new Rectangle(210, 40, 150, 20));
 		add(radioCatBox);
Index: applications/editors/josm/plugins/smed/src/panels/PanelSectors.java
===================================================================
--- applications/editors/josm/plugins/smed/src/panels/PanelSectors.java	(revision 30531)
+++ applications/editors/josm/plugins/smed/src/panels/PanelSectors.java	(revision 30532)
@@ -36,9 +36,9 @@
 		}
 	};
-	public JComboBox colourBox;
+	public JComboBox<ImageIcon> colourBox;
 	public EnumMap<Col, ImageIcon> colours = new EnumMap<Col, ImageIcon>(Col.class);
-	public JComboBox visibilityBox;
+	public JComboBox<String> visibilityBox;
 	public EnumMap<Vis, String> visibilities = new EnumMap<Vis, String>(Vis.class);
-	public JComboBox exhibitionBox;
+	public JComboBox<String> exhibitionBox;
 	public EnumMap<Exh, String> exhibitions = new EnumMap<Exh, String>(Exh.class);
 
@@ -74,5 +74,5 @@
 
 		TableColumn colColumn = table.getColumnModel().getColumn(1);
-		colourBox = new JComboBox();
+		colourBox = new JComboBox<>();
 		addColItem(new ImageIcon(getClass().getResource("/images/DelButton.png")), Col.UNKCOL);
 		addColItem(new ImageIcon(getClass().getResource("/images/WhiteButton.png")), Col.WHITE);
@@ -87,5 +87,5 @@
 		
 		TableColumn visColumn = table.getColumnModel().getColumn(12);
-		visibilityBox = new JComboBox();
+		visibilityBox = new JComboBox<>();
 		addVisibItem("", Vis.UNKVIS);
 		addVisibItem(Messages.getString("Intensified"), Vis.INTEN);
@@ -95,5 +95,5 @@
 		
 		TableColumn exhColumn = table.getColumnModel().getColumn(13);
-		exhibitionBox = new JComboBox();
+		exhibitionBox = new JComboBox<>();
 		addExhibItem("", Exh.UNKEXH);
 		addExhibItem(Messages.getString("24h"), Exh.H24);
Index: applications/editors/josm/plugins/smed/src/panels/PanelSpec.java
===================================================================
--- applications/editors/josm/plugins/smed/src/panels/PanelSpec.java	(revision 30531)
+++ applications/editors/josm/plugins/smed/src/panels/PanelSpec.java	(revision 30532)
@@ -17,5 +17,5 @@
 	private SmedAction dlg;
 	public JLabel categoryLabel;
-	public JComboBox categoryBox;
+	public JComboBox<String> categoryBox;
 	public EnumMap<Cat, Integer> categories = new EnumMap<Cat, Integer>(Cat.class);
 	private ActionListener alCategoryBox = new ActionListener() {
@@ -28,5 +28,5 @@
 		}
 	};
-	public JComboBox mooringBox;
+	public JComboBox<String> mooringBox;
 	public EnumMap<Cat, Integer> moorings = new EnumMap<Cat, Integer>(Cat.class);
 	private ActionListener alMooringBox = new ActionListener() {
@@ -173,5 +173,5 @@
 		categoryLabel.setBounds(new Rectangle(5, 125, 160, 18));
 		add(categoryLabel);
-		categoryBox = new JComboBox();
+		categoryBox = new JComboBox<>();
 		categoryBox.setBounds(new Rectangle(5, 142, 160, 18));
 		add(categoryBox);
@@ -196,5 +196,5 @@
 		addCatItem(Messages.getString("FerryCross"), Cat.SPM_FRRY);
 		addCatItem(Messages.getString("Anchorage"), Cat.SPM_ANCH);
-		mooringBox = new JComboBox();
+		mooringBox = new JComboBox<>();
 		mooringBox.setBounds(new Rectangle(5, 142, 160, 18));
 		add(mooringBox);
Index: applications/editors/josm/plugins/tagging-preset-tester/src/org/openstreetmap/josm/plugins/taggingpresettester/TaggingCellRenderer.java
===================================================================
--- applications/editors/josm/plugins/tagging-preset-tester/src/org/openstreetmap/josm/plugins/taggingpresettester/TaggingCellRenderer.java	(revision 30531)
+++ applications/editors/josm/plugins/tagging-preset-tester/src/org/openstreetmap/josm/plugins/taggingpresettester/TaggingCellRenderer.java	(revision 30532)
@@ -16,5 +16,5 @@
 
 final public class TaggingCellRenderer extends DefaultListCellRenderer {
-    @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
+    @Override public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
         TaggingPreset a = null;
         if (value instanceof TaggingPreset)
Index: applications/editors/josm/plugins/tracer2/.classpath
===================================================================
--- applications/editors/josm/plugins/tracer2/.classpath	(revision 30531)
+++ applications/editors/josm/plugins/tracer2/.classpath	(revision 30532)
@@ -2,11 +2,6 @@
 <classpath>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="test/src"/>
-	<!-- <classpathentry exported="true" kind="con" path="GROOVY_SUPPORT"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
-	<classpathentry kind="lib" path="/JOSM/dist/josm-custom.jar" sourcepath="/JOSM/src"/>
-	<classpathentry kind="lib" path="/JOSM/test/build" sourcepath="/JOSM/test/functional"/>
-	<classpathentry kind="lib" path="test/config"/>
-	<classpathentry kind="output" path="build"/> -->
+	<classpathentry combineaccessrules="false" kind="src" path="/JOSM"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+	<classpathentry kind="output" path="bin"/>
 </classpath>
Index: applications/editors/josm/plugins/tracer2/.project
===================================================================
--- applications/editors/josm/plugins/tracer2/.project	(revision 30532)
+++ applications/editors/josm/plugins/tracer2/.project	(revision 30532)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>JOSM-tracer2</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: applications/editors/josm/plugins/tracer2/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- applications/editors/josm/plugins/tracer2/.settings/org.eclipse.jdt.core.prefs	(revision 30532)
+++ applications/editors/josm/plugins/tracer2/.settings/org.eclipse.jdt.core.prefs	(revision 30532)
@@ -0,0 +1,99 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.7
Index: applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/preferences/ServerParamDialog.java
===================================================================
--- applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/preferences/ServerParamDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/preferences/ServerParamDialog.java	(revision 30532)
@@ -56,10 +56,10 @@
     private JTextField m_oDescription = new JTextField();
     private JTextArea m_oUrl = new JTextArea(5,5);
-    private JComboBox m_oTileSize;
-    private JComboBox m_oResolution;
+    private JComboBox<String> m_oTileSize;
+    private JComboBox<String> m_oResolution;
     //private JTextField m_oSkipBottom = new JTextField();
-    private JComboBox m_oMode;
+    private JComboBox<String> m_oMode;
     private JTextField m_oThreshold = new JTextField();
-    private JComboBox m_oPointsPerCircle;
+    private JComboBox<String> m_oPointsPerCircle;
     private JTextField m_oTag = new JTextField();
     private JTextField m_oPreferredValues = new JTextField();
@@ -112,5 +112,5 @@
     }
     
-    private void loadComboBox( JComboBox c, String strValue, String[] astrValues ) {
+    private void loadComboBox( JComboBox<?> c, String strValue, String[] astrValues ) {
         int pos = 0;
         for ( String str: astrValues ) {
@@ -123,5 +123,5 @@
     }
     
-    private String saveComboBox( JComboBox c, String[] astrValues ) {
+    private String saveComboBox( JComboBox<?> c, String[] astrValues ) {
         return astrValues[c.getSelectedIndex()];
     }
@@ -140,8 +140,8 @@
         setButtonIcons(new String[] { "ok.png", "cancel.png" });
         
-        m_oTileSize = new JComboBox(m_astrTileSize);
-        m_oResolution = new JComboBox(m_astrResolution);
-        m_oMode = new JComboBox(m_astrMode);
-        m_oPointsPerCircle = new JComboBox(m_astrPointsPerCircle);
+        m_oTileSize = new JComboBox<>(m_astrTileSize);
+        m_oResolution = new JComboBox<>(m_astrResolution);
+        m_oMode = new JComboBox<>(m_astrMode);
+        m_oPointsPerCircle = new JComboBox<>(m_astrPointsPerCircle);
         
         load();
Index: applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/preferences/ServerParamSelectDialog.java
===================================================================
--- applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/preferences/ServerParamSelectDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/preferences/ServerParamSelectDialog.java	(revision 30532)
@@ -34,10 +34,5 @@
 public class ServerParamSelectDialog extends JPanel {
 	
-    /**
-	 * 
-	 */
-	private static final long serialVersionUID = 5655941545321036641L;
-	
-	private JComboBox m_oComboBox;
+	private JComboBox<String> m_oComboBox;
     List<ServerParam> m_listServerParam;
     private boolean m_bShow = true;
@@ -74,5 +69,5 @@
         	i++;
         }
-        m_oComboBox = new JComboBox(astr);
+        m_oComboBox = new JComboBox<>(astr);
         m_oComboBox.setSelectedIndex(pos);
         
Index: applications/editors/josm/plugins/turnrestrictions/test/src/org/openstreetmap/josm/plugins/turnrestrictions/editor/TurnRestrictionLegEditorTest.java
===================================================================
--- applications/editors/josm/plugins/turnrestrictions/test/src/org/openstreetmap/josm/plugins/turnrestrictions/editor/TurnRestrictionLegEditorTest.java	(revision 30531)
+++ applications/editors/josm/plugins/turnrestrictions/test/src/org/openstreetmap/josm/plugins/turnrestrictions/editor/TurnRestrictionLegEditorTest.java	(revision 30532)
@@ -15,5 +15,4 @@
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
 
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -35,11 +34,9 @@
 public class TurnRestrictionLegEditorTest extends JFrame {
     
-    private JTextArea taTest;
     private TurnRestrictionLegEditor editor;
     private TurnRestrictionEditorModel model;
-    private JList lstObjects;
-    private DefaultListModel listModel;
+    private JList<OsmPrimitive> lstObjects;
+    private DefaultListModel<OsmPrimitive> listModel;
     private DataSet dataSet;
-    
     
     protected JPanel buildLegEditorPanel() {
@@ -76,6 +73,6 @@
     protected JPanel buildObjectListPanel() {
         JPanel pnl = new JPanel(new BorderLayout());
-        listModel = new DefaultListModel();
-        pnl.add(new JScrollPane(lstObjects = new JList(listModel)), BorderLayout.CENTER);
+        listModel = new DefaultListModel<>();
+        pnl.add(new JScrollPane(lstObjects = new JList<>(listModel)), BorderLayout.CENTER);
         lstObjects.setCellRenderer(new OsmPrimitivRenderer());      
         
Index: applications/editors/josm/plugins/turnrestrictions/test/src/org/openstreetmap/josm/plugins/turnrestrictions/editor/ViaListTest.java
===================================================================
--- applications/editors/josm/plugins/turnrestrictions/test/src/org/openstreetmap/josm/plugins/turnrestrictions/editor/ViaListTest.java	(revision 30531)
+++ applications/editors/josm/plugins/turnrestrictions/test/src/org/openstreetmap/josm/plugins/turnrestrictions/editor/ViaListTest.java	(revision 30532)
@@ -21,14 +21,11 @@
  *
  */
-public class ViaListTest  extends JFrame{
+public class ViaListTest extends JFrame {
     
-    private ViaList lstVias;
     private TurnRestrictionEditorModel model;
-    private JList lstJOSMSelection;
-    
     
     protected void build() {
         DataSet ds = new DataSet();
-        OsmDataLayer layer =new OsmDataLayer(ds, "test",null);
+        OsmDataLayer layer =new OsmDataLayer(ds, "test", null);
         // mock a controler 
         NavigationControler controler = new NavigationControler() {
@@ -54,8 +51,8 @@
         
         DefaultListSelectionModel selectionModel = new DefaultListSelectionModel();
-        c.add(lstVias = new ViaList(new ViaListModel(model, selectionModel), selectionModel), gc);
+        c.add(new ViaList(new ViaListModel(model, selectionModel), selectionModel), gc);
         
         gc.gridx = 1;
-        c.add(lstJOSMSelection = new JList(), gc);
+        c.add(new JList<>(), gc);
         
         setSize(600,600);       
Index: applications/editors/josm/plugins/utilsplugin2/src/edu/princeton/cs/algs4/EdgeWeightedDigraph.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/edu/princeton/cs/algs4/EdgeWeightedDigraph.java	(revision 30531)
+++ applications/editors/josm/plugins/utilsplugin2/src/edu/princeton/cs/algs4/EdgeWeightedDigraph.java	(revision 30532)
@@ -21,7 +21,4 @@
  *  <i>Algorithms, 4th Edition</i> by Robert Sedgewick and Kevin Wayne.
  */
-
-
-
 public class EdgeWeightedDigraph {
     private final int V;
@@ -32,4 +29,5 @@
      * Create an empty edge-weighted digraph with V vertices.
      */
+    @SuppressWarnings("unchecked")
     public EdgeWeightedDigraph(int V) {
         if (V < 0) throw new RuntimeException("Number of vertices must be nonnegative");
@@ -102,5 +100,4 @@
     }
 
-
    /**
      * Add the edge e to this digraph.
@@ -111,5 +108,4 @@
         E++;
     }
-
 
    /**
@@ -144,6 +140,4 @@
     }
 
-
-
    /**
      * Return a string representation of this graph.
@@ -162,13 +156,3 @@
         return s.toString();
     }
-
-    /**
-     * Test client.
-     */
-//    public static void main(String[] args) {
-//        In in = new In(args[0]);
-//        EdgeWeightedDigraph G = new EdgeWeightedDigraph(in);
-//        StdOut.println(G);
-//    }
-
 }
Index: applications/editors/josm/plugins/utilsplugin2/src/edu/princeton/cs/algs4/IndexMinPQ.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/edu/princeton/cs/algs4/IndexMinPQ.java	(revision 30531)
+++ applications/editors/josm/plugins/utilsplugin2/src/edu/princeton/cs/algs4/IndexMinPQ.java	(revision 30532)
@@ -19,4 +19,5 @@
     private Key[] keys;      // keys[i] = priority of i
 
+    @SuppressWarnings("unchecked")
     public IndexMinPQ(int NMAX) {
         keys = (Key[]) new Comparable[NMAX + 1];    // make this of length NMAX??
@@ -186,35 +187,3 @@
         }
     }
-
-
-//    public static void main(String[] args) {
-//        // insert a bunch of strings
-//        String[] strings = { "it", "was", "the", "best", "of", "times", "it", "was", "the", "worst" };
-//
-//        IndexMinPQ<String> pq = new IndexMinPQ<String>(strings.length);
-//        for (int i = 0; i < strings.length; i++) {
-//            pq.insert(i, strings[i]);
-//        }
-//
-//        // delete and print each key
-//        while (!pq.isEmpty()) {
-//            int i = pq.delMin();
-//            StdOut.println(i + " " + strings[i]);
-//        }
-//        StdOut.println();
-//
-//        // reinsert the same strings
-//        for (int i = 0; i < strings.length; i++) {
-//            pq.insert(i, strings[i]);
-//        }
-//
-//        // print each key using the iterator
-//        for (int i : pq) {
-//            StdOut.println(i + " " + strings[i]);
-//        }
-//        while (!pq.isEmpty()) {
-//            pq.delMin();
-//        }
-//
-//    }
 }
Index: applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/customurl/ChooseURLAction.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/customurl/ChooseURLAction.java	(revision 30531)
+++ applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/customurl/ChooseURLAction.java	(revision 30532)
@@ -54,5 +54,5 @@
         }
         final JLabel label1=new JLabel(tr("Please select one of custom URLs (configured in Preferences)"));
-        final JList list1=new JList(names);
+        final JList<String> list1=new JList<>(names);
         final JTextField editField=new JTextField();
         final JCheckBox check1=new JCheckBox(tr("Ask every time"));
Index: applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/replacegeometry/ReplaceGeometryUtils.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/replacegeometry/ReplaceGeometryUtils.java	(revision 30531)
+++ applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/replacegeometry/ReplaceGeometryUtils.java	(revision 30532)
@@ -8,4 +8,5 @@
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -13,5 +14,4 @@
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
 import javax.swing.JOptionPane;
@@ -24,4 +24,5 @@
 import org.openstreetmap.josm.command.DeleteCommand;
 import org.openstreetmap.josm.command.MoveCommand;
+import org.openstreetmap.josm.corrector.UserCancelException;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.Node;
@@ -29,14 +30,11 @@
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.RelationMember;
-import org.openstreetmap.josm.data.osm.RelationToChildReference;
 import org.openstreetmap.josm.data.osm.TagCollection;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.DefaultNameFormatter;
+import org.openstreetmap.josm.gui.Notification;
 import org.openstreetmap.josm.gui.conflict.tags.CombinePrimitiveResolverDialog;
-import org.openstreetmap.josm.gui.conflict.tags.TagConflictResolutionUtil;
 
 import edu.princeton.cs.algs4.AssignmentProblem;
-import org.openstreetmap.josm.gui.Notification;
-import static org.openstreetmap.josm.tools.I18n.tr;
 
 /**
@@ -45,5 +43,4 @@
  */
 public final class ReplaceGeometryUtils {
-    private static final String TITLE = tr("Replace Geometry");
     /**
      * Replace new or uploaded object with new object
@@ -168,10 +165,10 @@
 
         // merge tags
-        Collection<Command> tagResolutionCommands = getTagConflictResolutionCommands(subjectNode, referenceObject);
-        if (tagResolutionCommands == null) {
+        try {
+            commands.addAll(getTagConflictResolutionCommands(subjectNode, referenceObject));
+        } catch (UserCancelException e) {
             // user canceled tag merge dialog
             return null;
         }
-        commands.addAll(tagResolutionCommands);
 
         // replace sacrificial node in way with node that is being upgraded
@@ -254,10 +251,10 @@
                 
         // merge tags
-        Collection<Command> tagResolutionCommands = getTagConflictResolutionCommands(referenceWay, subjectWay);
-        if (tagResolutionCommands == null) {
+        try {
+            commands.addAll(getTagConflictResolutionCommands(referenceWay, subjectWay));
+        } catch (UserCancelException e) {
             // user canceled tag merge dialog
             return null;
         }
-        commands.addAll(tagResolutionCommands);
         
         // Prepare a list of nodes that are not used anywhere except in the way
@@ -452,47 +449,13 @@
      * @param source object tags are merged from
      * @param target object tags are merged to
-     * @return
-     */
-    protected static List<Command> getTagConflictResolutionCommands(OsmPrimitive source, OsmPrimitive target) {
-        // determine if the same key in each object has different values
-        boolean keysWithMultipleValues;
-        Set<OsmPrimitive> set = new HashSet<OsmPrimitive>();
-        set.add(source);
-        set.add(target);
-        TagCollection tagCol = TagCollection.unionOfAllPrimitives(set);
-        Set<String> keys = tagCol.getKeysWithMultipleValues();
-        keysWithMultipleValues = !keys.isEmpty();
-            
+     * @return The list of {@link Command commands} needed to apply resolution actions.
+     * @throws UserCancelException If the user cancelled a dialog.
+     */
+    protected static List<Command> getTagConflictResolutionCommands(OsmPrimitive source, OsmPrimitive target) throws UserCancelException {
         Collection<OsmPrimitive> primitives = Arrays.asList(source, target);
-        
-        Set<RelationToChildReference> relationToNodeReferences = RelationToChildReference.getRelationToChildReferences(primitives);
-
-        // build the tag collection
-        TagCollection tags = TagCollection.unionOfAllPrimitives(primitives);
-        TagConflictResolutionUtil.combineTigerTags(tags);
-        TagConflictResolutionUtil.normalizeTagCollectionBeforeEditing(tags, primitives);
-        TagCollection tagsToEdit = new TagCollection(tags);
-        TagConflictResolutionUtil.completeTagCollectionForEditing(tagsToEdit);
-
         // launch a conflict resolution dialog, if necessary
-        CombinePrimitiveResolverDialog dialog = CombinePrimitiveResolverDialog.getInstance();
-        dialog.getTagConflictResolverModel().populate(tagsToEdit, tags.getKeysWithMultipleValues());
-        dialog.getRelationMemberConflictResolverModel().populate(relationToNodeReferences);
-        dialog.setTargetPrimitive(target);
-        dialog.prepareDefaultDecisions();
-
-        // conflict resolution is necessary if there are conflicts in the merged tags
-        // or if both objects have relation memberships
-        if (keysWithMultipleValues || 
-                (!RelationToChildReference.getRelationToChildReferences(source).isEmpty() &&
-                 !RelationToChildReference.getRelationToChildReferences(target).isEmpty())) {
-            dialog.setVisible(true);
-            if (dialog.isCanceled()) {
-                return null;
-            }
-        }
-        return dialog.buildResolutionCommands();
-    }
-
+        return CombinePrimitiveResolverDialog.launchIfNecessary(
+                TagCollection.unionOfAllPrimitives(primitives), primitives, Collections.singleton(target));
+    }
     
     /**
Index: applications/editors/josm/plugins/waypoint_search/src/org/openstreetmap/josm/plugins/waypointSearch/SelectWaypointDialog.java
===================================================================
--- applications/editors/josm/plugins/waypoint_search/src/org/openstreetmap/josm/plugins/waypointSearch/SelectWaypointDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/waypoint_search/src/org/openstreetmap/josm/plugins/waypointSearch/SelectWaypointDialog.java	(revision 30532)
@@ -17,14 +17,12 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
-
 public class SelectWaypointDialog extends ToggleDialog implements KeyListener, MouseListener {
 
     private JTextField searchPattern = new JTextField(20);
-    private DefaultListModel listModel = new DefaultListModel();
-    private JList searchResult = new JList(listModel);
+    private DefaultListModel<String> listModel = new DefaultListModel<>();
+    private JList<String> searchResult = new JList<>(listModel);
     private List<Marker> SearchResultObjectCache = new ArrayList<Marker>();
     private boolean first_time_search = true;
     private Engine engine = new Engine();
-    
     
     public SelectWaypointDialog(String name, String iconName, String tooltip,
@@ -33,5 +31,4 @@
         build();
     }
-    
 
     protected void build() {
@@ -60,6 +57,4 @@
         createLayout(panel, false, null);
     }
-
-    
     
     public void updateSearchResults(){
@@ -76,5 +71,4 @@
         }
     }
-    
 
     @Override
@@ -82,5 +76,4 @@
         // TODO Auto-generated method stub
     }
-
 
     @Override
@@ -90,10 +83,8 @@
     }
 
-
     @Override
     public void keyTyped(KeyEvent arg0) {
         first_time_search = false;
     }
-
 
     @Override
@@ -108,18 +99,11 @@
     }
 
-
     @Override
     public void mouseEntered(MouseEvent arg0) {
-        // TODO Auto-generated method stub
-        
     }
-
 
     @Override
     public void mouseExited(MouseEvent arg0) {
-        // TODO Auto-generated method stub
-        
     }
-
 
     @Override
@@ -128,12 +112,8 @@
             searchPattern.selectAll();
         }
-        
     }
-
 
     @Override
     public void mouseReleased(MouseEvent arg0) {
-        // TODO Auto-generated method stub
-        
     }
 }
Index: applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaToggleDialog.java
===================================================================
--- applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaToggleDialog.java	(revision 30531)
+++ applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaToggleDialog.java	(revision 30532)
@@ -60,6 +60,6 @@
     final StringProperty wikipediaLang = new StringProperty("wikipedia.lang", LanguageInfo.getJOSMLocaleCode().substring(0, 2));
     final Set<String> articles = new HashSet<String>();
-    final DefaultListModel model = new DefaultListModel();
-    final JList list = new JList(model) {
+    final DefaultListModel<WikipediaEntry> model = new DefaultListModel<>();
+    final JList<WikipediaEntry> list = new JList<WikipediaEntry>(model) {
 
         {
@@ -84,5 +84,5 @@
 
                 @Override
-                public JLabel getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
+                public JLabel getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
                     JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
                     final WikipediaEntry entry = (WikipediaEntry) value;
