diff --git a/platform/platform-impl/src/com/intellij/diagnostic/DefaultIdeaErrorLogger.java b/platform/platform-impl/src/com/intellij/diagnostic/DefaultIdeaErrorLogger.java index 0cb643701cbc..d0763129a190 100644 --- a/platform/platform-impl/src/com/intellij/diagnostic/DefaultIdeaErrorLogger.java +++ b/platform/platform-impl/src/com/intellij/diagnostic/DefaultIdeaErrorLogger.java @@ -51,7 +51,8 @@ public class DefaultIdeaErrorLogger implements ErrorLogger { processOOMError(event); } else if (!ourOomOccured) { - MessagePool.getInstance().addIdeFatalMessage(event); + IdeaLoggingEvent eventToAdd = new IdeaLoggingEvent(event.getMessage(), new ExceptionHolder(event.getThrowable())); + MessagePool.getInstance().addIdeFatalMessage(eventToAdd); } } catch (Exception e) { @@ -76,4 +77,11 @@ public class DefaultIdeaErrorLogger implements ErrorLogger { } }); } + + private class ExceptionHolder extends Throwable { + public ExceptionHolder(Throwable throwable) { + super(throwable.getMessage(), throwable.getCause() == null ? null : new ExceptionHolder(throwable.getCause())); + setStackTrace(throwable.getStackTrace()); + } + } }