Ignore:
Timestamp:
2009-08-02T14:36:40+02:00 (15 years ago)
Author:
Gubaer
Message:

towards a fix for #3142: JOSM applet class no longer functional

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java

    r1869 r1879  
    77import java.util.Collection;
    88import java.util.concurrent.Future;
     9import java.util.logging.Logger;
    910
    1011import javax.swing.JCheckBox;
     
    1617import org.openstreetmap.josm.data.osm.DataSet;
    1718import org.openstreetmap.josm.data.osm.DataSource;
     19import org.openstreetmap.josm.gui.ExceptionDialogUtil;
    1820import org.openstreetmap.josm.gui.PleaseWaitRunnable;
    1921import org.openstreetmap.josm.gui.download.DownloadDialog.DownloadTask;
     
    3436 */
    3537public class DownloadOsmTask implements DownloadTask {
     38    private static final Logger logger = Logger.getLogger(DownloadOsmTask.class.getName());
     39
    3640    private static Bounds currentBounds;
    3741    private Future<Task> task = null;
     
    4246        private DataSet dataSet;
    4347        private boolean newLayer;
     48        private boolean cancelled;
     49        private Exception lastException;
    4450
    4551        public Task(boolean newLayer, OsmServerReader reader, ProgressMonitor progressMonitor) {
     
    5056
    5157        @Override public void realRun() throws IOException, SAXException, OsmTransferException {
    52             dataSet = reader.parseOsm(progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false));
     58            try {
     59                dataSet = reader.parseOsm(progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false));
     60            } catch(Exception e) {
     61                if (cancelled) {
     62                    logger.warning(tr("Ignoring exception because download has been cancelled. Exception was: {0}" + e.toString()));
     63                    return;
     64                }
     65                if (e instanceof OsmTransferException) {
     66                    lastException = e;
     67                } else {
     68                    lastException = new OsmTransferException(e);
     69                }
     70            }
    5371        }
    5472
     
    84102
    85103        @Override protected void finish() {
     104            if (cancelled)
     105                return;
     106            if (lastException != null) {
     107                ExceptionDialogUtil.explainException(lastException);
     108                return;
     109            }
    86110            if (dataSet == null)
    87111                return; // user canceled download or error occurred
Note: See TracChangeset for help on using the changeset viewer.