Index: /trunk/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java	(revision 13251)
+++ /trunk/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java	(revision 13252)
@@ -76,5 +76,5 @@
         String icon = info.getIcon();
         if (icon != null) {
-            new ImageProvider(icon).setOptional(true).getResourceAsync().thenAcceptAsync(result -> {
+            new ImageProvider(icon).setOptional(true).getResourceAsync(result -> {
                 if (result != null) {
                     GuiHelper.runInEDT(() -> result.attachImageIcon(this));
Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/MapImage.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/MapImage.java	(revision 13251)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/MapImage.java	(revision 13252)
@@ -139,5 +139,5 @@
                 .setHeight(height)
                 .setOptional(true)
-                .getAsync().thenAcceptAsync(result -> {
+                .getAsync(result -> {
                     synchronized (this) {
                         if (result == null) {
Index: /trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java	(revision 13251)
+++ /trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java	(revision 13252)
@@ -217,5 +217,5 @@
         imgProv.setArchive(arch);
         imgProv.setOptional(true);
-        imgProv.getResourceAsync().thenAcceptAsync(result -> {
+        imgProv.getResourceAsync(result -> {
             if (result != null) {
                 GuiHelper.runInEDT(() -> result.attachImageIcon(this));
Index: /trunk/src/org/openstreetmap/josm/tools/ImageProvider.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/ImageProvider.java	(revision 13251)
+++ /trunk/src/org/openstreetmap/josm/tools/ImageProvider.java	(revision 13252)
@@ -46,4 +46,5 @@
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.function.Consumer;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -659,12 +660,13 @@
      *
      * This method returns immediately and runs the image request asynchronously.
+     * @param action the action that will deal with the image
      *
      * @return the future of the requested image
-     * @since 10714
-     */
-    public CompletableFuture<ImageIcon> getAsync() {
+     * @since 13252
+     */
+    public CompletableFuture<Void> getAsync(Consumer<? super ImageIcon> action) {
         return isRemote()
-                ? CompletableFuture.supplyAsync(this::get, IMAGE_FETCHER)
-                : CompletableFuture.completedFuture(get());
+                ? CompletableFuture.supplyAsync(this::get, IMAGE_FETCHER).thenAcceptAsync(action)
+                : CompletableFuture.completedFuture(get()).thenAccept(action);
     }
 
@@ -703,12 +705,13 @@
      *
      * This method returns immediately and runs the image request asynchronously.
+     * @param action the action that will deal with the image
      *
      * @return the future of the requested image
-     * @since 10714
-     */
-    public CompletableFuture<ImageResource> getResourceAsync() {
+     * @since 13252
+     */
+    public CompletableFuture<Void> getResourceAsync(Consumer<? super ImageResource> action) {
         return isRemote()
-                ? CompletableFuture.supplyAsync(this::getResource, IMAGE_FETCHER)
-                : CompletableFuture.completedFuture(getResource());
+                ? CompletableFuture.supplyAsync(this::getResource, IMAGE_FETCHER).thenAcceptAsync(action)
+                : CompletableFuture.completedFuture(getResource()).thenAccept(action);
     }
 
