Ticket #23738: 23738-wip.patch

File 23738-wip.patch, 1.5 KB (added by GerdP, 22 months ago)

This seems to fix the problem but I think something is wrong with the progress monitor (no update after first close)

  • src/org/openstreetmap/josm/io/OsmServerWriter.java

     
    55import static org.openstreetmap.josm.tools.I18n.tr;
    66import static org.openstreetmap.josm.tools.I18n.trn;
    77
     8import java.time.Instant;
    89import java.util.ArrayList;
    910import java.util.Collection;
    1011import java.util.Iterator;
     
    1819import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
    1920import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
    2021import org.openstreetmap.josm.gui.progress.ProgressMonitor;
     22import org.openstreetmap.josm.io.ChangesetClosedException.Source;
    2123import org.openstreetmap.josm.tools.CheckParameterUtil;
    2224
    2325/**
     
    172174                                "({0}/{1}) Uploading {2} objects...",
    173175                                chunk.size(), i, numChunks, chunk.size()));
    174176                processed.addAll(api.uploadDiff(chunk, progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false)));
     177                // see #23738: server will close CS if maximum changeset size was reached
     178                if (processed.size() >= api.getCapabilities().getMaxChangesetSize()) {
     179                    throw new ChangesetClosedException(api.getChangeset().getId(), Instant.now(), Source.UPLOAD_DATA);
     180                }
     181
    175182            }
    176183        } finally {
    177184            progressMonitor.finishTask();