diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/daemon/ProjectStructureDaemonAnalyzer.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/daemon/ProjectStructureDaemonAnalyzer.java index 7753c4c652af..f7beb9aed5ba 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/daemon/ProjectStructureDaemonAnalyzer.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/daemon/ProjectStructureDaemonAnalyzer.java @@ -25,7 +25,7 @@ public class ProjectStructureDaemonAnalyzer implements Disposable { private Set myElementWithNotCalculatedUsages = new HashSet(); private MergingUpdateQueue myAnalyzerQueue; private List myListeners = new ArrayList(); - private boolean myDisposed; + private boolean myStopped; public ProjectStructureDaemonAnalyzer(StructureConfigurableContext context) { Disposer.register(context, this); @@ -33,7 +33,7 @@ public class ProjectStructureDaemonAnalyzer implements Disposable { } private void doUpdate(final ProjectStructureElement element, final boolean check, final boolean collectUsages) { - if (myDisposed) return; + if (myStopped) return; if (check) { doCheck(element); @@ -47,6 +47,8 @@ public class ProjectStructureDaemonAnalyzer implements Disposable { final ProjectStructureProblemsHolder problemsHolder = new ProjectStructureProblemsHolder(); new ReadAction() { protected void run(final Result result) { + if (myStopped) return; + if (LOG.isDebugEnabled()) { LOG.debug("checking " + element); } @@ -55,6 +57,8 @@ public class ProjectStructureDaemonAnalyzer implements Disposable { }.execute(); invokeLater(new Runnable() { public void run() { + if (myStopped) return; + if (LOG.isDebugEnabled()) { LOG.debug("updating problems for " + element); } @@ -74,6 +78,8 @@ public class ProjectStructureDaemonAnalyzer implements Disposable { private void doCollectUsages(final ProjectStructureElement element) { final List usages = new ReadAction>() { protected void run(final Result> result) { + if (myStopped) return; + if (LOG.isDebugEnabled()) { LOG.debug("collecting usages in " + element); } @@ -83,6 +89,8 @@ public class ProjectStructureDaemonAnalyzer implements Disposable { invokeLater(new Runnable() { public void run() { + if (myStopped) return; + if (LOG.isDebugEnabled()) { LOG.debug("updating usages for " + element); } @@ -158,6 +166,7 @@ public class ProjectStructureDaemonAnalyzer implements Disposable { public void stop() { LOG.debug("analyzer stopped"); + myStopped = true; myAnalyzerQueue.cancelAllUpdates(); clearCaches(); myAnalyzerQueue.deactivate(); @@ -174,7 +183,7 @@ public class ProjectStructureDaemonAnalyzer implements Disposable { } public void dispose() { - myDisposed = true; + myStopped = true; myAnalyzerQueue.cancelAllUpdates(); } @@ -202,7 +211,7 @@ public class ProjectStructureDaemonAnalyzer implements Disposable { myAnalyzerQueue.activate(); myAnalyzerQueue.queue(new Update("reset") { public void run() { - myDisposed = false; + myStopped = false; } }); }