Ticket #3134: down-error.patch

File down-error.patch, 5.8 KB (added by plaicy, 16 years ago)
  • src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java

     
    4949        }
    5050
    5151        @Override public void realRun() throws IOException, SAXException, OsmTransferException {
    52             dataSet = reader.parseOsm(progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false));
     52            final ProgressMonitor subProgressMonitor
     53                = progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false);
     54            subProgressMonitor.beginTask(tr("Contacting OSM Server..."), 10);
     55            try {
     56                dataSet = reader.parseOsm(subProgressMonitor);
     57            } finally {
     58                subProgressMonitor.finishTask();
     59            }
    5360        }
    5461
    5562        protected OsmDataLayer getEditLayer() {
  • src/org/openstreetmap/josm/io/ProgressInputStream.java

     
    2929            progressMonitor = NullProgressMonitor.INSTANCE;
    3030        }
    3131        this.progressMonitor = progressMonitor;
    32         progressMonitor.beginTask(tr("Contacting OSM Server..."), 1);
    3332        progressMonitor.indeterminateSubTask(null);
    3433
    3534        try {
  • src/org/openstreetmap/josm/io/BoundingBoxDownloader.java

     
    4949            GpxData result = null;
    5050            for (int i = 0;!done;++i) {
    5151                progressMonitor.subTask(tr("Downloading points {0} to {1}...", i * 5000, ((i + 1) * 5000)));
    52                 InputStream in = getInputStream(url+i, progressMonitor.createSubTaskMonitor(1, true));
    53                 if (in == null) {
    54                     break;
     52                ProgressMonitor subProgressMonitor = progressMonitor.createSubTaskMonitor(1, true);
     53                subProgressMonitor.beginTask(tr("Contacting OSM Server..."), 1);
     54                try {
     55                    InputStream in = getInputStream(url+i, subProgressMonitor);
     56                    if (in == null) {
     57                        break;
     58                    }
     59                    progressMonitor.setTicks(0);
     60                    GpxData currentGpx = new GpxReader(in, null).data;
     61                    if (result == null) {
     62                        result = currentGpx;
     63                    } else if (currentGpx.hasTrackPoints()) {
     64                        result.mergeFrom(currentGpx);
     65                    } else{
     66                        done = true;
     67                    }
     68                    in.close();
     69                    activeConnection = null;
     70                } finally {
     71                    subProgressMonitor.finishTask();
    5572                }
    56                 progressMonitor.setTicks(0);
    57                 GpxData currentGpx = new GpxReader(in, null).data;
    58                 if (result == null) {
    59                     result = currentGpx;
    60                 } else if (currentGpx.hasTrackPoints()) {
    61                     result.mergeFrom(currentGpx);
    62                 } else{
    63                     done = true;
    64                 }
    65                 in.close();
    66                 activeConnection = null;
    6773            }
    6874            result.fromServer = true;
    6975            return result;
     
    97103     */
    98104    @Override
    99105    public DataSet parseOsm(ProgressMonitor progressMonitor) throws OsmTransferException {
    100         progressMonitor.beginTask(tr("Contacting OSM Server..."), 10);
    101106        try {
    102107            progressMonitor.indeterminateSubTask(null);
    103             final InputStream in = getInputStream("map?bbox="+lon1+","+lat1+","+lon2+","+lat2, progressMonitor.createSubTaskMonitor(9, false));
    104             if (in == null)
    105                 return null;
    106             final DataSet data = OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(1, false));
    107             in.close();
    108             activeConnection = null;
    109             return data;
     108            ProgressMonitor subProgressMonitor1 = progressMonitor.createSubTaskMonitor(9, false);
     109            subProgressMonitor1.beginTask(tr("Prepare OSM data...", 2));
     110            try {
     111                final InputStream in = getInputStream("map?bbox="+lon1+","+lat1+","+lon2+","+lat2, subProgressMonitor1);
     112                if (in == null)
     113                    return null;
     114                ProgressMonitor subProgressMonitor2 = progressMonitor.createSubTaskMonitor(1, false);
     115                try {
     116                    final DataSet data = OsmReader.parseDataSet(in, subProgressMonitor2);
     117                    in.close();
     118                    activeConnection = null;
     119                    return data;
     120                } finally {
     121                    subProgressMonitor2.finishTask();
     122                }
     123            } finally {
     124                subProgressMonitor1.finishTask();
     125            }
    110126        } catch (IOException e) {
    111127            if (cancel)
    112128                return null;
  • src/org/openstreetmap/josm/io/OsmReader.java

     
    462462            throw new SAXException(e1);
    463463        }
    464464
    465         progressMonitor.beginTask(tr("Prepare OSM data...", 2));
    466465        try {
    467466            for (Node n : reader.nodes.values()) {
    468467                reader.ds.addPrimitive(n);