diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcModuleStructureSynchronizer.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcModuleStructureSynchronizer.java index 9e296d71810a..5043085dee36 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcModuleStructureSynchronizer.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcModuleStructureSynchronizer.java @@ -242,22 +242,21 @@ public class MvcModuleStructureSynchronizer extends AbstractProjectComponent { private void queue(SyncAction action, Object on) { ApplicationManager.getApplication().assertIsDispatchThread(); - synchronized (myActions) { - if (myActions.isEmpty()) { - if (myProject.isDisposed()) return; - StartupManager.getInstance(myProject).runWhenProjectIsInitialized(new DumbAwareRunnable() { - public void run() { - ApplicationManager.getApplication().invokeLater(new Runnable() { - public void run() { - runActions(); - } - }, ModalityState.NON_MODAL); - } - }); - } - myActions.add(new Pair(on, action)); + if (myActions.isEmpty()) { + if (myProject.isDisposed()) return; + StartupManager.getInstance(myProject).runWhenProjectIsInitialized(new DumbAwareRunnable() { + public void run() { + ApplicationManager.getApplication().invokeLater(new Runnable() { + public void run() { + runActions(); + } + }, ModalityState.NON_MODAL); + } + }); } + + myActions.add(new Pair(on, action)); } @NotNull @@ -289,16 +288,12 @@ public class MvcModuleStructureSynchronizer extends AbstractProjectComponent { private void runActions() { try { - ApplicationManager.getApplication().assertIsDispatchThread(); if (myProject.isDisposed()) { return; } - Pair[] actions; + Pair[] actions = myActions.toArray(new Pair[myActions.size()]); //get module by object and kill duplicates - synchronized (myActions) { - actions = myActions.toArray(new Pair[myActions.size()]); - } final Set> rawActions = new LinkedHashSet>(); @@ -336,9 +331,7 @@ public class MvcModuleStructureSynchronizer extends AbstractProjectComponent { // if there were any actions added during performSyncAction, clear them too // all needed actions are already added to buffer and have thus been performed // otherwise you may get repetitive 'run create-app?' questions - synchronized (myActions) { - myActions.clear(); - } + myActions.clear(); } }