diff --git a/platform/platform-impl/src/com/intellij/diagnostic/DefaultIdeaErrorLogger.java b/platform/platform-impl/src/com/intellij/diagnostic/DefaultIdeaErrorLogger.java
index 7d2af9173ec1..2d5bfa6beaef 100644
--- a/platform/platform-impl/src/com/intellij/diagnostic/DefaultIdeaErrorLogger.java
+++ b/platform/platform-impl/src/com/intellij/diagnostic/DefaultIdeaErrorLogger.java
@@ -3,6 +3,8 @@ package com.intellij.diagnostic;
import com.intellij.diagnostic.VMOptions.MemoryKind;
import com.intellij.featureStatistics.fusCollectors.AppLifecycleUsageTriggerCollector;
+import com.intellij.ide.plugins.PluginManagerCore;
+import com.intellij.internal.statistic.service.fus.collectors.FUSApplicationUsageTrigger;
import com.intellij.notification.Notification;
import com.intellij.notification.NotificationType;
import com.intellij.notification.Notifications;
@@ -12,6 +14,7 @@ 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.extensions.PluginId;
import com.intellij.openapi.updateSettings.impl.UpdateChecker;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.util.io.MappingFailedException;
@@ -46,7 +49,13 @@ public class DefaultIdeaErrorLogger implements ErrorLogger {
boolean notificationEnabled = !DISABLED_VALUE.equals(System.getProperty(FATAL_ERROR_NOTIFICATION_PROPERTY, ENABLED_VALUE));
- ErrorReportSubmitter submitter = IdeErrorsDialog.getSubmitter(event.getThrowable());
+ Throwable t = event.getThrowable();
+ PluginId pluginId = IdeErrorsDialog.findPluginId(t);
+ if (pluginId != null && !pluginId.getIdString().equals(PluginManagerCore.CORE_PLUGIN_ID)) {
+ FUSApplicationUsageTrigger.getInstance().trigger(PluginExceptionStatisticCollector.class, pluginId.getIdString(), null);
+ }
+
+ ErrorReportSubmitter submitter = IdeErrorsDialog.getSubmitter(t, pluginId);
boolean showPluginError = !(submitter instanceof ITNReporter) || ((ITNReporter)submitter).showErrorInRelease(event);
boolean isOOM = getOOMErrorKind(event.getThrowable()) != null;
diff --git a/platform/platform-impl/src/com/intellij/diagnostic/IdeErrorsDialog.java b/platform/platform-impl/src/com/intellij/diagnostic/IdeErrorsDialog.java
index 2530dc54dbed..85322d1690e7 100644
--- a/platform/platform-impl/src/com/intellij/diagnostic/IdeErrorsDialog.java
+++ b/platform/platform-impl/src/com/intellij/diagnostic/IdeErrorsDialog.java
@@ -963,8 +963,7 @@ public class IdeErrorsDialog extends DialogWrapper implements MessagePoolListene
}
@Nullable
- static ErrorReportSubmitter getSubmitter(@NotNull Throwable t) {
- PluginId pluginId = findPluginId(t);
+ static ErrorReportSubmitter getSubmitter(@NotNull Throwable t, PluginId pluginId) {
IdeaPluginDescriptor plugin = PluginManager.getPlugin(pluginId);
return getSubmitter(t, pluginId, plugin);
}
diff --git a/platform/platform-impl/src/com/intellij/diagnostic/PluginExceptionStatisticCollector.java b/platform/platform-impl/src/com/intellij/diagnostic/PluginExceptionStatisticCollector.java
new file mode 100644
index 000000000000..b64594be62a2
--- /dev/null
+++ b/platform/platform-impl/src/com/intellij/diagnostic/PluginExceptionStatisticCollector.java
@@ -0,0 +1,13 @@
+// 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.diagnostic;
+
+import com.intellij.internal.statistic.service.fus.collectors.ApplicationUsageTriggerCollector;
+import org.jetbrains.annotations.NotNull;
+
+public class PluginExceptionStatisticCollector extends ApplicationUsageTriggerCollector {
+ @NotNull
+ @Override
+ public String getGroupId() {
+ return "statistics.plugins.exception";
+ }
+}
diff --git a/platform/platform-resources/src/META-INF/PlatformExtensions.xml b/platform/platform-resources/src/META-INF/PlatformExtensions.xml
index 564343461069..57e3b9ba28a7 100644
--- a/platform/platform-resources/src/META-INF/PlatformExtensions.xml
+++ b/platform/platform-resources/src/META-INF/PlatformExtensions.xml
@@ -449,6 +449,7 @@
+