Index: applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/StreetsidePlugin.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/StreetsidePlugin.java	(revision 36064)
+++ applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/StreetsidePlugin.java	(revision 36065)
@@ -36,12 +36,4 @@
   private static final StreetsideWalkAction WALK_ACTION = new StreetsideWalkAction();
 
-  static {
-      MainMenu.add(MainApplication.getMenu().fileMenu, new StreetsideExportAction(), false, 14);
-      MainMenu.add(MainApplication.getMenu().imagerySubMenu, new StreetsideDownloadAction(), false);
-      MainMenu.add(MainApplication.getMenu().viewMenu, ZOOM_ACTION, false, 15);
-      MainMenu.add(MainApplication.getMenu().fileMenu, new StreetsideDownloadViewAction(), false, 14);
-      MainMenu.add(MainApplication.getMenu().moreToolsMenu, WALK_ACTION, false);
-  }
-
   /**
    * Main constructor.
@@ -56,4 +48,9 @@
       StreetsideUser.setTokenValid(false);
     }
+    MainMenu.add(MainApplication.getMenu().fileMenu, new StreetsideExportAction(), false, 14);
+    MainMenu.add(MainApplication.getMenu().imagerySubMenu, new StreetsideDownloadAction(), false);
+    MainMenu.add(MainApplication.getMenu().viewMenu, ZOOM_ACTION, false, 15);
+    MainMenu.add(MainApplication.getMenu().fileMenu, new StreetsideDownloadViewAction(), false, 14);
+    MainMenu.add(MainApplication.getMenu().moreToolsMenu, WALK_ACTION, false);
   }
 
Index: applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/CubemapBuilder.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/CubemapBuilder.java	(revision 36064)
+++ applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/CubemapBuilder.java	(revision 36065)
@@ -24,4 +24,5 @@
 import org.openstreetmap.josm.plugins.streetside.gui.StreetsideViewerDialog;
 import org.openstreetmap.josm.plugins.streetside.gui.imageinfo.StreetsideViewerPanel;
+import org.openstreetmap.josm.plugins.streetside.gui.imageinfo.ThreeSixtyDegreeViewerPanel;
 import org.openstreetmap.josm.plugins.streetside.utils.GraphicsUtils;
 import org.openstreetmap.josm.plugins.streetside.utils.StreetsideProperties;
@@ -115,8 +116,7 @@
 
 	public void downloadCubemapImages(String imageId) {
-    if(StreetsideViewerPanel.getThreeSixtyDegreeViewerPanel().getScene() != StreetsideViewerPanel.getThreeSixtyDegreeViewerPanel().getLoadingScene()) {
-      StreetsideViewerPanel.getThreeSixtyDegreeViewerPanel().setScene(
-  	      StreetsideViewerPanel.getThreeSixtyDegreeViewerPanel().getLoadingScene()
-  	  );
+      ThreeSixtyDegreeViewerPanel panel360 = StreetsideViewerPanel.getThreeSixtyDegreeViewerPanel();
+      if (panel360 != null && panel360.getScene() != panel360.getLoadingScene()) {
+        panel360.setScene(panel360.getLoadingScene());
 	  }
 
Index: applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/CubemapUtils.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/CubemapUtils.java	(revision 36064)
+++ applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/CubemapUtils.java	(revision 36065)
Index: applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/imageinfo/StreetsideViewerPanel.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/imageinfo/StreetsideViewerPanel.java	(revision 36064)
+++ applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/imageinfo/StreetsideViewerPanel.java	(revision 36065)
@@ -3,4 +3,5 @@
 
 import java.awt.BorderLayout;
+import java.awt.GraphicsEnvironment;
 import java.text.MessageFormat;
 
@@ -55,7 +56,7 @@
 		threeSixtyDegreeViewerPanel = new ThreeSixtyDegreeViewerPanel();
 
-		GraphicsUtils.PlatformHelper.run(() -> {
-	    	threeSixtyDegreeViewerPanel.initialize();
-		});
+    if (!GraphicsEnvironment.isHeadless()) {
+      GraphicsUtils.PlatformHelper.run(threeSixtyDegreeViewerPanel::initialize);
+    }
 
 		add(threeSixtyDegreeViewerPanel, BorderLayout.CENTER);
Index: applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideDataTest.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideDataTest.java	(revision 36064)
+++ applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideDataTest.java	(revision 36065)
@@ -11,7 +11,9 @@
 
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.condition.DisabledIf;
 import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.testutils.annotations.Main;
 
 /**
@@ -21,5 +23,5 @@
  * @see StreetsideData
  */
-@DisabledIf(value = "org.openstreetmap.josm.plugins.streetside.utils.TestUtil#cannotLoadImages", disabledReason = "At JOSM maintainer request (flaky?)")
+@Main
 class StreetsideDataTest {
 
@@ -95,4 +97,5 @@
    * Tests the selection of images.
    */
+  @Disabled("The imgs have non-int identifiers while the code expects the identifiers to be int in string form")
   @Test
   void testSelect() {
@@ -112,4 +115,5 @@
    */
   @Test
+  @Disabled("The imgs have non-int identifiers while the code expects the identifiers to be int in string form")
   void testNextAndPrevious() {
     data.setSelectedImage(img1);
@@ -125,4 +129,5 @@
   }
 
+  @Disabled("Someone decided to not throw an IllegalStateException. No clue why.")
   @Test
   void testNextOfNullImg() {
@@ -131,4 +136,5 @@
   }
 
+  @Disabled("Someone decided to not throw an IllegalStateException. No clue why.")
   @Test
   void testPreviousOfNullImg() {
@@ -141,4 +147,5 @@
    * multiselected List should reset.
    */
+  @Disabled("The imgs have non-int identifiers while the code expects the identifiers to be int in string form")
   @Test
   void testMultiSelect() {
Index: applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideLayerTest.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideLayerTest.java	(revision 36064)
+++ applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideLayerTest.java	(revision 36065)
@@ -6,4 +6,6 @@
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.awt.GraphicsEnvironment;
 
 import org.junit.jupiter.api.Test;
@@ -22,5 +24,4 @@
 @Main
 @Projection
-@DisabledIf(value = "org.openstreetmap.josm.plugins.streetside.utils.TestUtil#cannotLoadImages", disabledReason = "At JOSM maintainer request (flaky?)")
 class StreetsideLayerTest {
   private static Layer getDummyLayer() {
@@ -72,4 +73,5 @@
   }
 
+  @DisabledIf(value = "java.awt.GraphicsEnvironment#isHeadless", disabledReason = "Listener for destruction is only registered in non-headless environments")
   @Test
   void testClearInstance() {
Index: applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/utils/TestUtil.java
===================================================================
--- applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/utils/TestUtil.java	(revision 36064)
+++ applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/utils/TestUtil.java	(revision 36065)
@@ -15,9 +15,5 @@
 
 import org.junit.runners.model.InitializationError;
-import org.openstreetmap.josm.plugins.streetside.StreetsidePlugin;
-import org.openstreetmap.josm.spi.preferences.Config;
-import org.openstreetmap.josm.spi.preferences.MemoryPreferences;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
-import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.Logging;
 import org.openstreetmap.josm.tools.Utils;
@@ -30,16 +26,4 @@
   private TestUtil() {
     // Prevent instantiation
-  }
-
-  /**
-   * Check if we can load images
-   * @return {@code true} if the {@link StreetsidePlugin#LOGO} could be loaded
-   */
-  public static boolean cannotLoadImages() {
-    // The class-level @DisabledIf seems to be run prior to any possible setup code
-    if (Config.getPref() == null) {
-      Config.setPreferencesInstance(new MemoryPreferences());
-    }
-    return new ImageProvider("streetside-logo").setOptional(true).getResource() == null;
   }
 
