Index: trunk/src/org/openstreetmap/josm/data/imagery/vectortile/mapbox/MapboxVectorCachedTileLoader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/imagery/vectortile/mapbox/MapboxVectorCachedTileLoader.java	(revision 19502)
+++ trunk/src/org/openstreetmap/josm/data/imagery/vectortile/mapbox/MapboxVectorCachedTileLoader.java	(revision 19508)
@@ -77,3 +77,7 @@
         return DEFAULT_DOWNLOAD_JOB_DISPATCHER;
     }
+    
+    public static void shutdown() {
+        DEFAULT_DOWNLOAD_JOB_DISPATCHER.shutdownNow();
+    }
 }
Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledTiledMapRenderer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledTiledMapRenderer.java	(revision 19502)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledTiledMapRenderer.java	(revision 19508)
@@ -52,5 +52,4 @@
     private int zoom;
     private Consumer<TileZXY> notifier;
-    private final ExecutorService worker;
 
     /**
@@ -66,5 +65,4 @@
     public StyledTiledMapRenderer(Graphics2D g, NavigatableComponent nc, boolean isInactiveMode) {
         super(g, nc, isInactiveMode);
-        this.worker = MainApplication.worker;
     }
 
@@ -76,5 +74,4 @@
             return;
         }
-        final Executor worker = this.worker;
         final BufferedImage tempImage;
         final Graphics2D tempG2d;
@@ -132,5 +129,5 @@
                 // FIXME figure out how to make this thread safe? Probably not necessary, since UI isn't blocked, but it would be a nice to have
                 TileLoader loader = new TileLoader(data, tile, tileSize, new ArrayList<>());
-                worker.execute(loader);
+                MainApplication.worker.execute(loader);
                 if (tImg == null) {
                     this.cache.put(tile, new ImageCache(null, loader, false));
@@ -162,5 +159,5 @@
         // Force another render pass if there may be more tiles to render
         if (submittedTile <= 0) {
-            worker.execute(nc::invalidate);
+            MainApplication.worker.execute(nc::invalidate);
         }
         final double percentDrawn = 100 * painted / (double) toRender.size();
