Index: /applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/MergeOverlapAction.java
===================================================================
--- /applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/MergeOverlapAction.java	(revision 30712)
+++ /applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/MergeOverlapAction.java	(revision 30713)
@@ -61,8 +61,8 @@
 	}
 
-	Map<Way, List<Relation>> relations = new HashMap<Way, List<Relation>>();
-	Map<Way, Way> oldWays = new HashMap<Way, Way>();
-	Map<Relation, Relation> newRelations = new HashMap<Relation, Relation>();
-	Set<Way> deletes = new HashSet<Way>();
+	Map<Way, List<Relation>> relations = new HashMap<>();
+	Map<Way, Way> oldWays = new HashMap<>();
+	Map<Relation, Relation> newRelations = new HashMap<>();
+	Set<Way> deletes = new HashSet<>();
 
 	/**
@@ -76,5 +76,5 @@
 
 		// List of selected ways
-		List<Way> ways = new ArrayList<Way>();
+		List<Way> ways = new ArrayList<>();
 		relations.clear();
 		newRelations.clear();
@@ -85,5 +85,5 @@
 				Way way = (Way) osm;
 				ways.add(way);
-				List<Relation> rels = new ArrayList<Relation>();
+				List<Relation> rels = new ArrayList<>();
 				for (Relation r : OsmPrimitive.getFilteredList(way
 						.getReferrers(), Relation.class)) {
@@ -94,6 +94,6 @@
 		}
 
-		List<Way> sel = new ArrayList<Way>(ways);
-		Collection<Command> cmds = new LinkedList<Command>();
+		List<Way> sel = new ArrayList<>(ways);
+		Collection<Command> cmds = new LinkedList<>();
 
 		// *****
@@ -101,8 +101,8 @@
 		// *****
 		for (Way way : ways) {
-			Set<Node> nodes = new HashSet<Node>();
+			Set<Node> nodes = new HashSet<>();
 			for (Way opositWay : ways) {
 				if (way != opositWay) {
-					List<NodePos> nodesPos = new LinkedList<NodePos>();
+					List<NodePos> nodesPos = new LinkedList<>();
 
 					int pos = 0;
@@ -166,5 +166,5 @@
 			if (!nodes.isEmpty() && !way.isClosed() || nodes.size() >= 2) {
 				List<List<Node>> wayChunks = SplitWayAction.buildSplitChunks(
-						way, new ArrayList<Node>(nodes));
+						way, new ArrayList<>(nodes));
 				SplitWayResult result = splitWay(getEditLayer(), way, wayChunks);
 
@@ -184,8 +184,8 @@
 		// merge
 		// *****
-		ways = new ArrayList<Way>(sel);
+		ways = new ArrayList<>(sel);
 		while (!ways.isEmpty()) {
 			Way way = ways.get(0);
-			List<Way> combine = new ArrayList<Way>();
+			List<Way> combine = new ArrayList<>();
 			combine.add(way);
 			for (Way opositWay : ways) {
@@ -232,5 +232,5 @@
 		}
 
-		List<Way> del = new LinkedList<Way>();
+		List<Way> del = new LinkedList<>();
 		for (Way w : deletes) {
 			if (!w.isDeleted()) {
@@ -319,5 +319,5 @@
 			List<List<Node>> wayChunks) {
 		// build a list of commands, and also a new selection list
-		Collection<Command> commandList = new ArrayList<Command>(wayChunks
+		Collection<Command> commandList = new ArrayList<>(wayChunks
 				.size());
 
@@ -333,5 +333,5 @@
 		commandList.add(new ChangeCommand(way, changedWay));
 
-		List<Way> newWays = new ArrayList<Way>();
+		List<Way> newWays = new ArrayList<>();
 		// Second, create new ways
 		while (chunkIt.hasNext()) {
@@ -374,5 +374,5 @@
 								}
 							}
-							List<Node> nodes = new ArrayList<Node>();
+							List<Node> nodes = new ArrayList<>();
 							if (via != null) {
 								if (via instanceof Node) {
@@ -512,5 +512,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 ways
@@ -522,6 +522,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
@@ -555,8 +555,8 @@
 			// 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) {
@@ -606,5 +606,5 @@
 		}
 
-		LinkedList<Command> cmds = new LinkedList<Command>();
+		LinkedList<Command> cmds = new LinkedList<>();
 		deletes.addAll(ways);
 		deletes.remove(targetWay);
@@ -653,5 +653,5 @@
 	 */
 	private boolean duplicateParentRelations(Collection<Way> ways) {
-		Set<Relation> relations = new HashSet<Relation>();
+		Set<Relation> relations = new HashSet<>();
 		for (Way w : ways) {
 			List<Relation> rs = getParentRelations(w);
@@ -672,5 +672,5 @@
 	 */
 	private List<Relation> getParentRelations(Way way) {
-		List<Relation> rels = new ArrayList<Relation>();
+		List<Relation> rels = new ArrayList<>();
 		for (Relation r : relations.get(way)) {
 			if (newRelations.containsKey(r)) {
@@ -716,5 +716,5 @@
 	 */
 	private Set<Relation> getParentRelations(Collection<Way> ways) {
-		HashSet<Relation> ret = new HashSet<Relation>();
+		HashSet<Relation> ret = new HashSet<>();
 		for (Way w : ways) {
 			ret.addAll(getParentRelations(w));
Index: /applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/hack/MyRelationMemberConflictResolverModel.java
===================================================================
--- /applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/hack/MyRelationMemberConflictResolverModel.java	(revision 30712)
+++ /applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/hack/MyRelationMemberConflictResolverModel.java	(revision 30713)
@@ -80,5 +80,5 @@
 
         public MyRelationMemberConflictResolverModel() {
-            decisions = new ArrayList<RelationMemberConflictDecision>();
+            decisions = new ArrayList<>();
             support = new PropertyChangeSupport(this);
         }
@@ -165,5 +165,5 @@
             references = references == null ? new LinkedList<RelationToChildReference>() : references;
             decisions.clear();
-            this.relations = new HashSet<Relation>(references.size());
+            this.relations = new HashSet<>(references.size());
             for (RelationToChildReference reference: references) {
                 decisions.add(new RelationMemberConflictDecision(reference.getParent(), reference.getPosition()));
@@ -308,5 +308,5 @@
          */
         public Set<Relation> getModifiedRelations(OsmPrimitive newPrimitive) {
-            HashSet<Relation> ret = new HashSet<Relation>();
+            HashSet<Relation> ret = new HashSet<>();
             for (Relation relation: relations) {
                 if (isChanged(relation, newPrimitive)) {
Index: /applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/hack/MyRelationMemberConflictResolverTable.java
===================================================================
--- /applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/hack/MyRelationMemberConflictResolverTable.java	(revision 30712)
+++ /applications/editors/josm/plugins/merge-overlap/src/mergeoverlap/hack/MyRelationMemberConflictResolverTable.java	(revision 30713)
@@ -42,5 +42,5 @@
         getActionMap().put("selectPreviousColumnCell", selectPreviousColumnCellAction);
 
-        setRowHeight((int)new JComboBox<Object>().getPreferredSize().getHeight());
+        setRowHeight((int)new JComboBox<>().getPreferredSize().getHeight());
     }
 
