Ticket #4401: upload.diff

File upload.diff, 3.2 KB (added by Upliner, 22 months 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);