diff --git a/platform/platform-impl/src/com/intellij/diagnostic/DefaultIdeaErrorLogger.java b/platform/platform-impl/src/com/intellij/diagnostic/DefaultIdeaErrorLogger.java index d720d155b68a..f2f355eb63c1 100644 --- a/platform/platform-impl/src/com/intellij/diagnostic/DefaultIdeaErrorLogger.java +++ b/platform/platform-impl/src/com/intellij/diagnostic/DefaultIdeaErrorLogger.java @@ -21,6 +21,7 @@ import com.intellij.notification.NotificationType; import com.intellij.notification.Notifications; import com.intellij.openapi.application.ex.ApplicationManagerEx; import com.intellij.openapi.diagnostic.ErrorLogger; +import com.intellij.openapi.diagnostic.ErrorReportSubmitter; import com.intellij.openapi.diagnostic.IdeaLoggingEvent; import com.intellij.openapi.util.SystemInfo; import com.intellij.util.io.MappingFailedException; @@ -43,8 +44,11 @@ public class DefaultIdeaErrorLogger implements ErrorLogger { public boolean canHandle(IdeaLoggingEvent event) { boolean notificationEnabled = !DISABLED_VALUE.equals(System.getProperty(FATAL_ERROR_NOTIFICATION_PROPERTY, ENABLED_VALUE)); + ErrorReportSubmitter submitter = IdeErrorsDialog.getSubmitter(event.getThrowable()); + boolean showPluginError = !(submitter instanceof ITNReporter) || ((ITNReporter)submitter).showErrorInRelease(event); + return notificationEnabled || - !(IdeErrorsDialog.getSubmitter(event.getThrowable()) instanceof ITNReporter) || + showPluginError || ApplicationManagerEx.getApplicationEx().isInternal() || isOOMError(event.getThrowable()) || event.getThrowable() instanceof MappingFailedException; diff --git a/platform/platform-impl/src/com/intellij/diagnostic/ITNReporter.java b/platform/platform-impl/src/com/intellij/diagnostic/ITNReporter.java index 2bb2486a4dc9..af9038966353 100644 --- a/platform/platform-impl/src/com/intellij/diagnostic/ITNReporter.java +++ b/platform/platform-impl/src/com/intellij/diagnostic/ITNReporter.java @@ -26,7 +26,9 @@ import com.intellij.ide.DataManager; import com.intellij.ide.plugins.IdeaPluginDescriptor; import com.intellij.ide.plugins.PluginManager; import com.intellij.idea.IdeaLogger; -import com.intellij.notification.*; +import com.intellij.notification.Notification; +import com.intellij.notification.NotificationListener; +import com.intellij.notification.NotificationType; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.actionSystem.PlatformDataKeys; import com.intellij.openapi.application.ApplicationInfo; @@ -72,6 +74,15 @@ public class ITNReporter extends ErrorReportSubmitter { return sendError(events[0], additionalInfo, parentComponent, consumer); } + /** + * Could be used to enable error reporting even in release versions from non-internal mode. + * @return false by default. + */ + @SuppressWarnings({"MethodMayBeStatic", "UnusedParameters"}) + public boolean showErrorInRelease(IdeaLoggingEvent event) { + return false; + } + /** * @noinspection ThrowablePrintStackTrace */