diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java b/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java index bf103c628070..da10c4200294 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java +++ b/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java @@ -213,7 +213,7 @@ public class CompileDriver { } scope = addAdditionalRoots(scope, ALL_EXCEPT_SOURCE_PROCESSING); - final CompilerTask task = new CompilerTask(myProject, "Classes up-to-date check", true); + final CompilerTask task = new CompilerTask(myProject, "Classes up-to-date check", true, false); final CompileContextImpl compileContext = new CompileContextImpl(myProject, task, scope, createDependencyCache(), true, false); checkCachesVersion(compileContext, ((PersistentFS)ManagingFS.getInstance()).getCreationTimestamp()); @@ -549,7 +549,7 @@ public class CompileDriver { final String contentName = forceCompile ? CompilerBundle.message("compiler.content.name.compile") : CompilerBundle.message("compiler.content.name.make"); - final CompilerTask compileTask = new CompilerTask(myProject, contentName, ApplicationManager.getApplication().isUnitTestMode()); + final CompilerTask compileTask = new CompilerTask(myProject, contentName, ApplicationManager.getApplication().isUnitTestMode(), true); StatusBar.Info.set("", myProject, "Compiler"); if (useExtProcessBuild && BuildManager.getInstance().rescanRequired(myProject)) { @@ -2168,7 +2168,7 @@ public class CompileDriver { public void executeCompileTask(final CompileTask task, final CompileScope scope, final String contentName, final Runnable onTaskFinished) { final CompilerTask progressManagerTask = - new CompilerTask(myProject, contentName, false); + new CompilerTask(myProject, contentName, false, false); final CompileContextImpl compileContext = new CompileContextImpl(myProject, progressManagerTask, scope, null, false, false); FileDocumentManager.getInstance().saveAllDocuments(); diff --git a/java/compiler/impl/src/com/intellij/compiler/progress/CompilerTask.java b/java/compiler/impl/src/com/intellij/compiler/progress/CompilerTask.java index 97050a79d6ae..75e49da69dda 100644 --- a/java/compiler/impl/src/com/intellij/compiler/progress/CompilerTask.java +++ b/java/compiler/impl/src/com/intellij/compiler/progress/CompilerTask.java @@ -79,6 +79,7 @@ public class CompilerTask extends Task.Backgroundable { private final Object myMessageViewLock = new Object(); private final String myContentName; private final boolean myHeadlessMode; + private final boolean myForceAsyncExecution; private int myErrorCount = 0; private int myWarningCount = 0; private boolean myMessagesAutoActivated = false; @@ -88,10 +89,11 @@ public class CompilerTask extends Task.Backgroundable { private final AtomicBoolean myMessageViewWasPrepared = new AtomicBoolean(false); private Runnable myRestartWork; - public CompilerTask(@NotNull Project project, String contentName, final boolean headlessMode) { + public CompilerTask(@NotNull Project project, String contentName, final boolean headlessMode, boolean forceAsync) { super(project, contentName); myContentName = contentName; myHeadlessMode = headlessMode; + myForceAsyncExecution = forceAsync; } public void setContentIdKey(Key> contentIdKey) { @@ -465,7 +467,7 @@ public class CompilerTask extends Task.Backgroundable { } public boolean isHeadless() { - return myHeadlessMode; + return myHeadlessMode && !myForceAsyncExecution; } private boolean isHeadlessMode() { diff --git a/plugins/android/src/org/jetbrains/android/compiler/AndroidCompileUtil.java b/plugins/android/src/org/jetbrains/android/compiler/AndroidCompileUtil.java index 2726a66a8d69..23e4545eb876 100644 --- a/plugins/android/src/org/jetbrains/android/compiler/AndroidCompileUtil.java +++ b/plugins/android/src/org/jetbrains/android/compiler/AndroidCompileUtil.java @@ -407,7 +407,7 @@ public class AndroidCompileUtil { ApplicationManager.getApplication().runReadAction(new Runnable() { public void run() { if (project.isDisposed()) return; - CompilerTask task = new CompilerTask(project, "Android auto-generation", true); + CompilerTask task = new CompilerTask(project, "Android auto-generation", true, false); CompileScope scope = new ModuleCompileScope(module, false); contextWrapper[0] = new CompileContextImpl(project, task, scope, null, false, false); } diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTest.groovy index 96394d822f5d..e680665ded5c 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTest.groovy @@ -714,7 +714,7 @@ public class Main { assert findClassFile("Client") } - public void "_test navigate from stub to source"() { + public void "test navigate from stub to source"() { GroovyFile groovyFile = (GroovyFile) myFixture.addFileToProject("a.groovy", "class Groovy3 { InvalidType type }") myFixture.addClass("class Java4 extends Groovy3 {}").containingFile