boolean (@NotNull IdeaLoggingEvent event) { if (ourLoggerBroken) return false; try { Application app = ApplicationManager.getApplication(); if (app == null || app.isDisposed()) { return false; } UpdateChecker.checkForUpdate(event); boolean notificationEnabled = !DISABLED_VALUE.equals(System.getProperty(FATAL_ERROR_NOTIFICATION_PROPERTY, ENABLED_VALUE)); Throwable t = event.getThrowable(); PluginId pluginId = PluginUtil.getInstance().findPluginId(t); ErrorReportSubmitter submitter = IdeErrorsDialog.getSubmitter(t, pluginId); boolean showPluginError = !(submitter instanceof ITNReporter) || ((ITNReporter)submitter).showErrorInRelease(event); final MemoryKind kind = getOOMErrorKind(event.getThrowable()); boolean isOOM = kind != null; return notificationEnabled || showPluginError || ApplicationManager.getApplication().isInternal() || isOOM; } catch (LinkageError e) { if (e.getMessage().contains("Could not initialize class com.intellij.diagnostic.IdeErrorsDialog")) { ourLoggerBroken = true; } throw e; } }