Merge remote-tracking branch 'origin/master'

This commit is contained in:
Anna Kozlova
2014-10-31 21:02:40 +01:00
2 changed files with 8 additions and 19 deletions
@@ -546,11 +546,9 @@ public class BuildManager implements ApplicationComponent{
runCommand(new Runnable() {
@Override
public void run() {
LOG.info("Cancelling preloaded process for project " + projectPath);
Pair<RequestFuture<PreloadedProcessMessageHandler>, OSProcessHandler> pair = takePreloadedProcess(projectPath);
if (pair != null) {
final RequestFuture<PreloadedProcessMessageHandler> future = pair.first;
LOG.info("Cancelling preloaded process, sessionID=" + future.getRequestID());
myMessageDispatcher.cancelSession(future.getRequestID());
// waiting for preloaded process from project's task queue guarantees no build is started for this project
// until this one gracefully exits and closes all its storages
@@ -561,9 +559,6 @@ public class BuildManager implements ApplicationComponent{
}
});
}
else {
LOG.info("takePreloadedProcess() returned null");
}
}
});
}
@@ -752,12 +747,14 @@ public class BuildManager implements ApplicationComponent{
if (Registry.is("compiler.process.preload") && !project.isDisposed()) {
runCommand(new Runnable() {
public void run() {
try {
final Future<Pair<RequestFuture<PreloadedProcessMessageHandler>, OSProcessHandler>> preloadResult = launchPreloadedBuildProcess(project, projectTaskQueue);
myPreloadedBuilds.put(projectPath, preloadResult);
}
catch (Exception e) {
LOG.info("Error pre-loading build process for project " + projectPath, e);
if (!myPreloadedBuilds.containsKey(projectPath)) {
try {
final Future<Pair<RequestFuture<PreloadedProcessMessageHandler>, OSProcessHandler>> preloadResult = launchPreloadedBuildProcess(project, projectTaskQueue);
myPreloadedBuilds.put(projectPath, preloadResult);
}
catch (Exception e) {
LOG.info("Error pre-loading build process for project " + projectPath, e);
}
}
}
});
@@ -75,19 +75,11 @@ class BuildMessageDispatcher extends SimpleChannelInboundHandlerAdapter<CmdlineR
}
public void cancelSession(UUID sessionId) {
LOG.info("Cancelling session " + sessionId);
if (myCanceledSessions.add(sessionId)) {
final Channel channel = getConnectedChannel(sessionId);
if (channel != null) {
channel.writeAndFlush(CmdlineProtoUtil.toMessage(sessionId, CmdlineProtoUtil.createCancelCommand()));
LOG.info("Cancelling session " + sessionId + "; message sent");
}
else {
LOG.info("Cancelling session " + sessionId + "; channel not ready");
}
}
else {
LOG.info("Cancelling session " + sessionId + "; already marked as 'cancelled'");
}
}