Ignore:
Timestamp:
02.08.2009 14:36:40 (3 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.