reverted: add messages to context synchronously to ensure that all messages processed before session terminates

This commit is contained in:
Eugene Zhuravlev
2012-10-14 22:37:33 +02:00
parent 162d6a6606
commit e545cbbcba
2 changed files with 6 additions and 30 deletions
@@ -86,7 +86,6 @@ import com.intellij.util.Function;
import com.intellij.util.StringBuilderSpinAllocator;
import com.intellij.util.ThrowableRunnable;
import com.intellij.util.concurrency.Semaphore;
import com.intellij.util.concurrency.SequentialTaskExecutor;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.HashMap;
import com.intellij.util.containers.MultiMap;
@@ -105,7 +104,6 @@ import org.jetbrains.jps.incremental.Utils;
import javax.swing.*;
import java.io.*;
import java.util.*;
import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;
import static org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.ParametersMessage.TargetTypeBuildScope;
@@ -445,12 +443,6 @@ public class CompileDriver {
final BuildManager buildManager = BuildManager.getInstance();
buildManager.cancelAutoMakeTasks(myProject);
return buildManager.scheduleBuild(myProject, compileContext.isRebuild(), compileContext.isMake(), scopes, paths, builderParams, new DefaultMessageHandler(myProject) {
private final SequentialTaskExecutor myContextUpdater = new SequentialTaskExecutor(new Executor() {
@Override
public void execute(Runnable command) {
ApplicationManager.getApplication().executeOnPooledThread(command);
}
});
@Override
public void buildStarted(UUID sessionId) {
@@ -459,22 +451,15 @@ public class CompileDriver {
@Override
public void sessionTerminated(final UUID sessionId) {
if (compileContext.shouldUpdateProblemsView()) {
myContextUpdater.execute(new Runnable() {
@Override
public void run() {
if (!myProject.isDisposed()) {
final ProblemsView view = ProblemsViewImpl.SERVICE.getInstance(myProject);
view.clearProgress();
view.clearOldMessages(compileContext.getCompileScope(), sessionId);
}
}
});
final ProblemsView view = ProblemsViewImpl.SERVICE.getInstance(myProject);
view.clearProgress();
view.clearOldMessages(compileContext.getCompileScope(), sessionId);
}
}
@Override
public void handleFailure(UUID sessionId, CmdlineRemoteProto.Message.Failure failure) {
submitMessage(CompilerMessageCategory.ERROR, failure.getDescription(), null, -1, -1);
compileContext.addMessage(CompilerMessageCategory.ERROR, failure.getDescription(), null, -1, -1);
final String trace = failure.getStacktrace();
if (trace != null) {
LOG.info(trace);
@@ -506,19 +491,10 @@ public class CompileDriver {
final long line = message.hasLine() ? message.getLine() : -1;
final long column = message.hasColumn() ? message.getColumn() : -1;
final String srcUrl = sourceFilePath != null ? VirtualFileManager.constructUrl(LocalFileSystem.PROTOCOL, sourceFilePath) : null;
submitMessage(category, messageText, srcUrl, (int)line, (int)column);
compileContext.addMessage(category, messageText, srcUrl, (int)line, (int)column);
}
}
private void submitMessage(final CompilerMessageCategory category, final String messageText, final String srcUrl, final int line, final int column) {
myContextUpdater.execute(new Runnable() {
@Override
public void run() {
compileContext.addMessage(category, messageText, srcUrl, line, column);
}
});
}
@Override
protected void handleBuildEvent(UUID sessionId, CmdlineRemoteProto.Message.BuilderMessage.BuildEvent event) {
final CmdlineRemoteProto.Message.BuilderMessage.BuildEvent.Type eventType = event.getEventType();
@@ -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