Index: /trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java	(revision 18703)
+++ /trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java	(revision 18704)
@@ -32,4 +32,5 @@
 import org.openstreetmap.josm.data.Preferences;
 import org.openstreetmap.josm.gui.MainApplication;
+import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetReader;
 import org.openstreetmap.josm.io.CertificateAmendment.NativeCertAmend;
 
@@ -50,10 +51,13 @@
 
     @Override
-    public void preStartupHook() {
+    public void afterPrefStartupHook() {
         // This will merge our MenuBar into the system menu.
         // MUST be set before Swing is initialized!
-        // And will not work when one of the system independent LAFs is used.
-        // They just insist on painting themselves...
-        Utils.updateSystemProperty("apple.laf.useScreenMenuBar", "true");
+
+        // But only use the menu bar if the Name Suggestion Index is not enabled -- see JDK-8297117 (can remove once that is fixed)
+        // The NSI is especially egregious since it adds something like 8k presets, and is the most likely to trigger JDK-8297117.
+        if (TaggingPresetReader.getPresetSources().stream().noneMatch(url -> url.contains("name-suggestion-index"))) {
+            Utils.updateSystemProperty("apple.laf.useScreenMenuBar", "true");
+        }
         Utils.updateSystemProperty("apple.awt.application.name", "JOSM");
     }
