Changeset 17975 in josm


Ignore:
Timestamp:
2021-07-10T15:25:54+02:00 (3 years ago)
Author:
Don-vip
Message:

fix #21090 - fix #20695 - shutdown precache tileloader only when all tiles have been loaded

Location:
trunk/src/org/openstreetmap/josm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/imagery/TMSCachedTileLoader.java

    r17830 r17975  
    165165    public void shutdown() {
    166166        if (!downloadExecutor.equals(DEFAULT_DOWNLOAD_JOB_DISPATCHER)) {
     167            cancelOutstandingTasks();
    167168            downloadExecutor.shutdown();
    168169        }
  • trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java

    r17867 r17975  
    18291829    /**
    18301830     * Task responsible for precaching imagery along the gpx track
    1831      *
     1831     * @since 8526
    18321832     */
    18331833    public class PrecacheTask implements TileLoaderListener {
     
    18501850            if (this.tileLoader instanceof TMSCachedTileLoader) {
    18511851                ((TMSCachedTileLoader) this.tileLoader).setDownloadExecutor(
    1852                         TMSCachedTileLoader.getNewThreadPoolExecutor("Precache downloader"));
     1852                        TMSCachedTileLoader.getNewThreadPoolExecutor("precache-downloader-%d"));
    18531853            }
    18541854            requestedTiles = new ConcurrentSkipListSet<>(
     
    18741874            this.totalCount = requestedTiles.size();
    18751875            this.progressMonitor.setTicksCount(requestedTiles.size());
    1876 
    18771876        }
    18781877
     
    18971896         */
    18981897        public void cancel() {
    1899             if (tileLoader instanceof TMSCachedTileLoader) {
    1900                 TMSCachedTileLoader cachedTileLoader = (TMSCachedTileLoader) tileLoader;
    1901                 cachedTileLoader.cancelOutstandingTasks();
    1902                 cachedTileLoader.shutdown();
    1903             }
     1898            shutdownTmsTileLoader();
    19041899        }
    19051900
     
    19171912                Logging.warn("Tile loading failure: " + tile + " - " + tile.getErrorMessage());
    19181913            }
     1914            if (isFinished()) {
     1915                shutdownTmsTileLoader();
     1916            }
     1917        }
     1918
     1919        private void shutdownTmsTileLoader() {
    19191920            if (tileLoader instanceof TMSCachedTileLoader) {
    1920                 TMSCachedTileLoader cachedTileLoader = (TMSCachedTileLoader) tileLoader;
    1921                 cachedTileLoader.cancelOutstandingTasks();
    1922                 cachedTileLoader.shutdown();
    1923             }
    1924         }
    1925 
    1926         /**
    1927          * Returns tile loader that is used to load the tiles.
    1928          * @return tile loader that is used to load the tiles
    1929          */
    1930         public TileLoader getTileLoader() {
    1931             return tileLoader;
     1921                ((TMSCachedTileLoader) tileLoader).shutdown();
     1922            }
    19321923        }
    19331924
     
    19361927         */
    19371928        public void run() {
    1938             TileLoader loader = getTileLoader();
    19391929            for (Tile t: requestedTiles) {
    19401930                if (!progressMonitor.isCanceled()) {
    1941                     loader.createTileLoaderJob(t).submit();
    1942                 }
    1943             }
    1944 
     1931                    tileLoader.createTileLoaderJob(t).submit();
     1932                }
     1933            }
    19451934        }
    19461935    }
     
    19931982        adjustAction.destroy();
    19941983        if (tileLoader instanceof TMSCachedTileLoader) {
    1995             TMSCachedTileLoader cachedTileLoader = (TMSCachedTileLoader) tileLoader;
    1996             cachedTileLoader.shutdown();
     1984            ((TMSCachedTileLoader) tileLoader).shutdown();
    19971985        }
    19981986    }
Note: See TracChangeset for help on using the changeset viewer.