diff --git a/platform/platform-api/src/com/intellij/openapi/ui/Messages.java b/platform/platform-api/src/com/intellij/openapi/ui/Messages.java index 86d0dae8a641..66a328a1b986 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/Messages.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/Messages.java @@ -224,7 +224,7 @@ public class Messages { } public static boolean canShowMacSheetPanel() { - return SystemInfo.isMac && !isApplicationInUnitTestOrHeadless() && Registry.is("ide.mac.message.dialogs.as.sheets"); + return SystemInfo.isMac && ApplicationManager.getApplication() != null && !isApplicationInUnitTestOrHeadless() && Registry.is("ide.mac.message.dialogs.as.sheets"); } public static boolean isMacSheetEmulation() { diff --git a/platform/platform-api/src/com/intellij/openapi/ui/messages/MessagesService.java b/platform/platform-api/src/com/intellij/openapi/ui/messages/MessagesService.java index 015be10313b0..699290ae8204 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/messages/MessagesService.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/messages/MessagesService.java @@ -1,6 +1,7 @@ // Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.openapi.ui.messages; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.DialogWrapper; @@ -93,6 +94,15 @@ public interface MessagesService { Function, String> lineJoiner); static MessagesService getInstance() { + if (ApplicationManager.getApplication() != null) { return ServiceManager.getService(MessagesService.class); } -} \ No newline at end of file + + try { + return (MessagesService) MessagesService.class.getClassLoader().loadClass("com.intellij.ui.messages.MessagesServiceImpl").newInstance(); + } + catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + } +}