Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/AbstractDownloadTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/AbstractDownloadTask.java	(revision 8907)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/AbstractDownloadTask.java	(revision 8908)
@@ -9,10 +9,12 @@
 /**
  * Common abstract implementation of other download tasks
+ * @param <T> The downloaded data type
  * @since 2322
  */
-public abstract class AbstractDownloadTask implements DownloadTask {
+public abstract class AbstractDownloadTask<T> implements DownloadTask {
     private List<Object> errorMessages;
     private boolean canceled;
     private boolean failed;
+    protected T downloadedData;
 
     public AbstractDownloadTask() {
@@ -36,10 +38,22 @@
     }
 
-    protected void rememberErrorMessage(String message) {
+    protected final void rememberErrorMessage(String message) {
         errorMessages.add(message);
     }
 
-    protected void rememberException(Exception exception) {
+    protected final void rememberException(Exception exception) {
         errorMessages.add(exception);
+    }
+
+    protected final void rememberDownloadedData(T data) {
+        this.downloadedData = data;
+    }
+
+    /**
+     * Replies the downloaded data.
+     * @return The downloaded data.
+     */
+    public final T getDownloadedData() {
+        return downloadedData;
     }
 
Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java	(revision 8907)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java	(revision 8908)
@@ -33,5 +33,5 @@
  * Task allowing to download GPS data.
  */
-public class DownloadGpsTask extends AbstractDownloadTask {
+public class DownloadGpsTask extends AbstractDownloadTask<GpxData> {
 
     private DownloadTask downloadTask;
@@ -128,4 +128,5 @@
         @Override
         protected void finish() {
+            rememberDownloadedData(rawData);
             if (isCanceled() || isFailed())
                 return;
Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesTask.java	(revision 8907)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesTask.java	(revision 8908)
@@ -15,4 +15,5 @@
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.notes.Note;
+import org.openstreetmap.josm.data.osm.NoteData;
 import org.openstreetmap.josm.data.preferences.IntegerProperty;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
@@ -27,5 +28,5 @@
 
 /** Task for downloading notes */
-public class DownloadNotesTask extends AbstractDownloadTask {
+public class DownloadNotesTask extends AbstractDownloadTask<NoteData> {
 
     private static final String PATTERN_API_URL = "https?://.*/api/0.6/notes.*";
@@ -38,4 +39,10 @@
     private DownloadTask downloadTask;
 
+    /**
+     * Download a specific note by its id.
+     * @param id Note identifier
+     * @param progressMonitor progress monitor
+     * @return the future representing the asynchronous task
+     */
     public Future<?> download(long id, ProgressMonitor progressMonitor) {
         final String url = OsmApi.getOsmApi().getBaseUrl() + "notes/" + id;
@@ -98,4 +105,5 @@
         @Override
         protected void finish() {
+            rememberDownloadedData(new NoteData(notesData));
             if (isCanceled() || isFailed()) {
                 return;
Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	(revision 8907)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	(revision 8908)
@@ -36,5 +36,5 @@
  * Run in the worker thread.
  */
-public class DownloadOsmTask extends AbstractDownloadTask {
+public class DownloadOsmTask extends AbstractDownloadTask<DataSet> {
 
     protected static final String PATTERN_OSM_API_URL           = "https?://.*/api/0.6/(map|nodes?|ways?|relations?|\\*).*";
@@ -44,5 +44,4 @@
 
     protected Bounds currentBounds;
-    protected DataSet downloadedData;
     protected DownloadTask downloadTask;
 
@@ -66,16 +65,4 @@
             return super.getTitle();
         }
-    }
-
-    protected void rememberDownloadedData(DataSet ds) {
-        this.downloadedData = ds;
-    }
-
-    /**
-     * Replies the {@link DataSet} containing the downloaded OSM data.
-     * @return The {@link DataSet} containing the downloaded OSM data.
-     */
-    public DataSet getDownloadedData() {
-        return downloadedData;
     }
 
