Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java	(revision 15238)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java	(revision 15240)
@@ -20,4 +20,5 @@
 import javax.swing.table.AbstractTableModel;
 
+import org.openstreetmap.josm.data.osm.AbstractPrimitive;
 import org.openstreetmap.josm.data.osm.DataSelectionListener;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -381,11 +382,5 @@
      */
     public Set<OsmPrimitive> getIncompleteMemberPrimitives() {
-        Set<OsmPrimitive> ret = new HashSet<>();
-        for (RelationMember member : members) {
-            if (member.getMember().isIncomplete()) {
-                ret.add(member.getMember());
-            }
-        }
-        return ret;
+        return members.stream().map(RelationMember::getMember).filter(AbstractPrimitive::isIncomplete).collect(Collectors.toSet());
     }
 
@@ -396,11 +391,5 @@
      */
     public Set<OsmPrimitive> getSelectedIncompleteMemberPrimitives() {
-        Set<OsmPrimitive> ret = new HashSet<>();
-        for (RelationMember member : getSelectedMembers()) {
-            if (member.getMember().isIncomplete()) {
-                ret.add(member.getMember());
-            }
-        }
-        return ret;
+        return getSelectedMembers().stream().map(RelationMember::getMember).filter(AbstractPrimitive::isIncomplete).collect(Collectors.toSet());
     }
 
@@ -411,9 +400,5 @@
      */
     public boolean hasIncompleteMembers() {
-        for (RelationMember member : members) {
-            if (member.getMember().isIncomplete())
-                return true;
-        }
-        return false;
+        return members.stream().anyMatch(rm -> rm.getMember().isIncomplete());
     }
 
@@ -424,9 +409,5 @@
      */
     public boolean hasIncompleteSelectedMembers() {
-        for (RelationMember member : getSelectedMembers()) {
-            if (member.getMember().isIncomplete())
-                return true;
-        }
-        return false;
+        return getSelectedMembers().stream().anyMatch(rm -> rm.getMember().isIncomplete());
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/AbstractRelationEditorAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/AbstractRelationEditorAction.java	(revision 15238)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/AbstractRelationEditorAction.java	(revision 15240)
@@ -90,7 +90,5 @@
 
     protected final boolean canDownload() {
-        if (editorAccess.getEditor().getRelation() == null)
-            return false;
-        DataSet ds = editorAccess.getEditor().getRelation().getDataSet();
+        DataSet ds = editorAccess.getEditor().getLayer().getDataSet();
         return !NetworkManager.isOffline(OnlineResource.OSM_API) && ds != null && !ds.isLocked()
                 && DownloadPolicy.BLOCKED != ds.getDownloadPolicy();
