From a762c8cb9a7ead02e2955f60675bf8506717e695 Mon Sep 17 00:00:00 2001 From: Kirill Kalishev Date: Fri, 12 Feb 2010 13:10:35 +0300 Subject: [PATCH] fixed NPE when attempting to access to a disposed ContentManager in invokeLater --- .../src/com/intellij/diagnostic/logging/LogFilesManager.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/diagnostic/logging/LogFilesManager.java b/platform/lang-impl/src/com/intellij/diagnostic/logging/LogFilesManager.java index 88c8a32b91..021301fd13 100644 --- a/platform/lang-impl/src/com/intellij/diagnostic/logging/LogFilesManager.java +++ b/platform/lang-impl/src/com/intellij/diagnostic/logging/LogFilesManager.java @@ -42,6 +42,7 @@ public class LogFilesManager implements Disposable { private final Runnable myUpdateRequest; private final LogConsoleManager myManager; private final Alarm myUpdateAlarm = new Alarm(Alarm.ThreadToUse.OWN_THREAD, this); + private boolean myDisposed; public LogFilesManager(final Project project, LogConsoleManager manager, Disposable parentDisposable) { myManager = manager; @@ -49,8 +50,7 @@ public class LogFilesManager implements Disposable { myUpdateRequest = new Runnable() { public void run() { - if (project.isDisposed()) return; - if (myUpdateAlarm == null) return; //already disposed + if (project.isDisposed() || myDisposed) return; myUpdateAlarm.cancelAllRequests(); for (final LogFileOptions logFile : myLogFileManagerMap.keySet()) { final Set oldFiles = myLogFileManagerMap.get(logFile); @@ -62,6 +62,8 @@ public class LogFilesManager implements Disposable { SwingUtilities.invokeLater(new Runnable() { public void run() { + if (project.isDisposed() || myDisposed) return; + addConfigurationConsoles(logFile, new Condition() { public boolean value(final String file) { return !oldFiles.contains(file); @@ -93,6 +95,7 @@ public class LogFilesManager implements Disposable { } public void dispose() { + myDisposed = true; if (myUpdateAlarm != null) { myUpdateAlarm.cancelAllRequests(); } -- 2.11.4.GIT