Ticket #4401: upload.diff

File upload.diff, 3.2 KB (added by Upliner, 16 years ago)
  • src/org/openstreetmap/josm/gui/io/UploadPrimitivesTask.java

     
    234234                        writer = new OsmServerWriter();
    235235                    }
    236236                    writer.uploadOsm(strategy, toUpload.getPrimitives(), changeset, getProgressMonitor().createSubTaskMonitor(1, false));
    237                     processedPrimitives.addAll(writer.getProcessedPrimitives());
    238237
    239238                    // if we get here we've successfully uploaded the data. Exit the loop.
    240239                    //
     
    242241                } catch(OsmTransferCancelledException e) {
    243242                    e.printStackTrace();
    244243                    uploadCancelled = true;
    245                     return;
     244                    break uploadloop;
    246245                } catch(OsmApiPrimitiveGoneException e) {
    247246                    // try to recover from  410 Gone
    248247                    //
     
    272271                        break uploadloop;
    273272                    }
    274273                } finally {
     274                    if (writer != null) {
     275                        processedPrimitives.addAll(writer.getProcessedPrimitives());
     276                    }
    275277                    synchronized(this) {
    276278                        writer = null;
    277279                    }
     
    285287        } catch (Exception e) {
    286288            if (uploadCancelled) {
    287289                System.out.println(tr("Ignoring caught exception because upload is canceled. Exception is: {0}", e.toString()));
    288                 return;
     290            } else {
     291                lastException = e;
    289292            }
    290             lastException = e;
    291293        }
    292         if (uploadCancelled) return;
     294        if (uploadCancelled && processedPrimitives.isEmpty()) return;
    293295        cleanupAfterUpload();
    294296    }
    295297
  • src/org/openstreetmap/josm/io/DiffResultProcessor.java

     
    125125                if (!p.isDeleted()) {
    126126                    p.setOsmId(entry.new_id, entry.new_version);
    127127                    p.setVisible(true);
     128                } else {
     129                    p.setVisible(false);
    128130                }
    129131                if (cs != null && !cs.isNew()) {
    130132                    p.setChangesetId(cs.getId());
  • src/org/openstreetmap/josm/data/osm/DataSet.java

     
    888888        boolean changed = false;
    889889        while (it.hasNext()) {
    890890            OsmPrimitive primitive = it.next();
    891             if (primitive.isDeleted()) {
     891            if (primitive.isDeleted() && !primitive.isVisible()) {
    892892                selectedPrimitives.remove(primitive);
    893893                allPrimitives.remove(primitive);
    894894                primitive.setDataset(null);