Index: trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java	(revision 16121)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java	(revision 16122)
@@ -14,6 +14,7 @@
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashSet;
+import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
@@ -30,4 +31,5 @@
 import javax.swing.JTable;
 import javax.swing.JToolBar;
+import javax.swing.SwingConstants;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
@@ -63,5 +65,5 @@
  * It listens to property change events for {@link ChangesetCacheManagerModel#CHANGESET_IN_DETAIL_VIEW_PROP}
  * and updates its view accordingly.
- *
+ * @since 2689
  */
 public class ChangesetContentPanel extends JPanel implements PropertyChangeListener, ChangesetAware {
@@ -76,5 +78,5 @@
 
     private final HeaderPanel pnlHeader = new HeaderPanel();
-    public DownloadObjectAction actDownloadObjectAction;
+    protected DownloadObjectAction actDownloadObjectAction;
 
     protected void buildModels() {
@@ -131,5 +133,5 @@
     protected JPanel buildActionButtonPanel() {
         JPanel pnl = new JPanel(new FlowLayout(FlowLayout.LEFT));
-        JToolBar tb = new JToolBar(JToolBar.VERTICAL);
+        JToolBar tb = new JToolBar(SwingConstants.VERTICAL);
         tb.setFloatable(false);
 
@@ -321,19 +323,10 @@
 
         protected Set<OsmPrimitive> getTarget() {
-            if (!isEnabled()) {
-                return null;
-            }
             DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
-            if (ds == null) {
-                return null;
-            }
-            Set<OsmPrimitive> target = new HashSet<>();
-            for (HistoryOsmPrimitive p : model.getSelectedPrimitives()) {
-                OsmPrimitive op = ds.getPrimitiveById(p.getPrimitiveId());
-                if (op != null) {
-                    target.add(op);
-                }
-            }
-            return target;
+            if (isEnabled() && ds != null) {
+                return model.getSelectedPrimitives().stream()
+                        .map(p -> ds.getPrimitiveById(p.getPrimitiveId())).filter(Objects::nonNull).collect(Collectors.toSet());
+            }
+            return Collections.emptySet();
         }
 
@@ -365,7 +358,5 @@
         public void actionPerformed(ActionEvent e) {
             final Set<OsmPrimitive> target = getTarget();
-            if (target == null) {
-                return;
-            } else if (target.isEmpty()) {
+            if (target.isEmpty()) {
                 alertNoPrimitivesTo(model.getSelectedPrimitives(), tr("Nothing to select"),
                         HelpUtil.ht("/Dialog/ChangesetCacheManager#NothingToSelectInLayer"));
@@ -388,7 +379,5 @@
         public void actionPerformed(ActionEvent e) {
             final Set<OsmPrimitive> target = getTarget();
-            if (target == null) {
-                return;
-            } else if (target.isEmpty()) {
+            if (target.isEmpty()) {
                 alertNoPrimitivesTo(model.getSelectedPrimitives(), tr("Nothing to zoom to"),
                         HelpUtil.ht("/Dialog/ChangesetCacheManager#NothingToZoomTo"));
