Index: /trunk/src/org/openstreetmap/josm/gui/history/DiffTableModel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/history/DiffTableModel.java	(revision 16496)
+++ /trunk/src/org/openstreetmap/josm/gui/history/DiffTableModel.java	(revision 16497)
@@ -4,4 +4,5 @@
 import java.util.ArrayList;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.IntStream;
 
@@ -52,17 +53,14 @@
 
     void computeRowNumbers() {
-        rowNumbers = new int[rows.size()];
-        int rowNumber = reversed ? rows.size() : 1;
-        int i = 0;
-        for (TwoColumnDiff.Item item : rows) {
+        AtomicInteger rowNumber = new AtomicInteger(reversed ? rows.size() : 1);
+        rowNumbers = rows.stream().mapToInt(item -> {
             if (item.state == DiffItemType.EMPTY) {
-                rowNumbers[i] = -1;
+                return -1;
             } else if (reversed) {
-                rowNumbers[i] = rowNumber--;
+                return rowNumber.getAndDecrement();
             } else {
-                rowNumbers[i] = rowNumber++;
+                return rowNumber.getAndIncrement();
             }
-            i++;
-        }
+        }).toArray();
     }
 
