Index: trunk/src/org/openstreetmap/josm/gui/dialogs/layer/LayerVisibilityAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/layer/LayerVisibilityAction.java	(revision 17740)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/layer/LayerVisibilityAction.java	(revision 17741)
@@ -610,5 +610,5 @@
             panels.put(color, colorPanel);
 
-            List<Color> colors = layerSupplier.get().stream().map(l -> l.getColor()).distinct().collect(Collectors.toList());
+            List<Color> colors = getColors();
             if (colors.size() == 1) {
                 highlightColor(colors.get(0));
@@ -616,11 +616,15 @@
         }
 
-        @Override
-        public void updateLayers() {
-            Collection<Layer> layers = layerSupplier.get();
-            List<Color> colors = layers.stream().filter(l -> l instanceof GpxLayer)
-                    .map(l -> ((GpxLayer) l).getColor())
+        private List<Color> getColors() {
+            return layerSupplier.get().stream()
+                    .filter(layer -> layer instanceof GpxLayer)
+                    .map(Layer::getColor)
                     .distinct()
                     .collect(Collectors.toList());
+        }
+
+        @Override
+        public void updateLayers() {
+            List<Color> colors = getColors();
             if (colors.size() == 1) {
                 setVisible(true);
