mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Bug fix: MavenMergingUpdateQueue suspend forever if beforeRootsChange comes twice in a row without rootsChanged.
This commit is contained in:
+9
-7
@@ -88,19 +88,21 @@ public class MavenMergingUpdateQueue extends MergingUpdateQueue {
|
||||
}, MavenMergingUpdateQueue.this);
|
||||
|
||||
ProjectRootManager.getInstance(project).addModuleRootListener(new ModuleRootListener() {
|
||||
boolean beforeCalled = false;
|
||||
int beforeCalled;
|
||||
|
||||
public void beforeRootsChange(ModuleRootEvent event) {
|
||||
suspend();
|
||||
beforeCalled = true;
|
||||
if (beforeCalled++ == 0) {
|
||||
suspend();
|
||||
}
|
||||
}
|
||||
|
||||
public void rootsChanged(ModuleRootEvent event) {
|
||||
if (!beforeCalled) return;
|
||||
beforeCalled = false;
|
||||
if (beforeCalled == 0) return; // This may occur if listener has been added between beforeRootsChange() and rootsChanged() calls.
|
||||
|
||||
resume();
|
||||
MavenMergingUpdateQueue.this.restartTimer();
|
||||
if (--beforeCalled == 0) {
|
||||
resume();
|
||||
MavenMergingUpdateQueue.this.restartTimer();
|
||||
}
|
||||
}
|
||||
}, MavenMergingUpdateQueue.this);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user