DefaultIdeaErrorLogger - wrap exceptions - exception classes leak fix

This commit is contained in:
Mihail Muhin
2010-10-30 15:04:29 +04:00
committed by Maxim Shafirov
parent c1a169a39c
commit 8d8d17767f
@@ -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());
}
}
}