Ticket #19680: 19680.patch
| File 19680.patch, 1.9 KB (added by , 6 years ago) |
|---|
-
src/reverter/ChangesetReverter.java
14 14 import java.util.Iterator; 15 15 import java.util.List; 16 16 import java.util.Map; 17 import java.util.stream.Collectors; 17 18 18 19 import org.openstreetmap.josm.command.Command; 19 20 import org.openstreetmap.josm.command.DeleteCommand; … … 27 28 import org.openstreetmap.josm.data.osm.DataSet; 28 29 import org.openstreetmap.josm.data.osm.Node; 29 30 import org.openstreetmap.josm.data.osm.OsmPrimitive; 31 import org.openstreetmap.josm.data.osm.OsmPrimitiveComparator; 30 32 import org.openstreetmap.josm.data.osm.OsmPrimitiveType; 31 33 import org.openstreetmap.josm.data.osm.PrimitiveId; 32 34 import org.openstreetmap.josm.data.osm.Relation; … … 444 446 /* Check referrers for deleted objects: if object is referred by another object that 445 447 * isn't going to be deleted or modified, create a conflict. 446 448 */ 447 for (Iterator<OsmPrimitive> it = toDelete.iterator(); it.hasNext();) { 448 OsmPrimitive p = it.next(); 449 List<OsmPrimitive> delSorted = toDelete.stream() 450 .sorted(OsmPrimitiveComparator.orderingRelationsWaysNodes()) 451 .collect(Collectors.toList()); 452 for (OsmPrimitive p : delSorted) { 449 453 if (p.isDeleted()) { 450 it.remove();454 toDelete.remove(p); 451 455 continue; 452 456 } 453 457 for (OsmPrimitive referrer : p.getReferrers()) { … … 460 464 cmds.add(new ConflictAddCommand(layer.data, createConflict(p, true))); 461 465 conflicted.add(p); 462 466 } 463 it.remove();467 toDelete.remove(p); 464 468 break; 465 469 } 466 470 }
