Changeset 15557 in josm for trunk/src/org/openstreetmap


Ignore:
Timestamp:
2019-12-03T17:28:19+01:00 (5 years ago)
Author:
GerdP
Message:

fix #18386: DataIntegrityProblemException in parallel way mode

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/mapmode/ParallelWays.java

    r14143 r15557  
    191191    private List<Command> makeAddWayAndNodesCommandList() {
    192192        DataSet ds = OsmDataManager.getInstance().getEditDataSet();
     193
    193194        List<Command> commands = new ArrayList<>(sortedNodes.size() + ways.size());
     195        Set<Node> dupCheck = new HashSet<>();
    194196        for (int i = 0; i < sortedNodes.size() - (isClosedPath() ? 1 : 0); i++) {
    195             commands.add(new AddCommand(ds, sortedNodes.get(i)));
     197            Node n = sortedNodes.get(i);
     198            // don't add the same node twice, see #18386
     199            if (dupCheck.add(n)) {
     200                commands.add(new AddCommand(ds, n));
     201            }
    196202        }
    197203        for (Way w : ways) {
Note: See TracChangeset for help on using the changeset viewer.