Ignore:
Timestamp:
2016-01-11T18:03:13+01:00 (8 years ago)
Author:
simon04
Message:

see #8824 - Allow to cancel download of style/preset list in preferences

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java

    r9334 r9411  
    13191319        private final String url;
    13201320        private final List<SourceProvider> sourceProviders;
    1321         private BufferedReader reader;
    1322         private boolean canceled;
     1321        private transient CachedFile cachedFile;
     1322        private transient boolean canceled;
    13231323        private final List<ExtendedSourceEntry> sources = new ArrayList<>();
    13241324
     
    13321332        protected void cancel() {
    13331333            canceled = true;
    1334             Utils.close(reader);
     1334            Utils.close(cachedFile);
    13351335        }
    13361336
     
    13561356        @Override
    13571357        protected void realRun() throws SAXException, IOException, OsmTransferException {
    1358             String lang = LanguageInfo.getLanguageCodeXML();
    13591358            try {
    13601359                sources.addAll(getDefault());
     
    13671366                    }
    13681367                }
    1369 
    1370                 InputStream stream = new CachedFile(url).getInputStream();
    1371                 reader = new BufferedReader(new InputStreamReader(stream, StandardCharsets.UTF_8));
     1368                readFile();
     1369            } catch (IOException e) {
     1370                if (canceled)
     1371                    // ignore the exception and return
     1372                    return;
     1373                OsmTransferException ex = new OsmTransferException(e);
     1374                ex.setUrl(url);
     1375                warn(ex);
     1376            }
     1377        }
     1378
     1379        protected void readFile() throws IOException {
     1380            final String lang = LanguageInfo.getLanguageCodeXML();
     1381            cachedFile = new CachedFile(url);
     1382            try (final BufferedReader reader = cachedFile.getContentReader()) {
    13721383
    13731384                String line;
     
    14341445                    }
    14351446                }
    1436             } catch (IOException e) {
    1437                 if (canceled)
    1438                     // ignore the exception and return
    1439                     return;
    1440                 OsmTransferException ex = new OsmTransferException(e);
    1441                 ex.setUrl(url);
    1442                 warn(ex);
    1443                 return;
    14441447            }
    14451448        }
Note: See TracChangeset for help on using the changeset viewer.