From 9e066d879d314465dcf7af7faee80e33f7bdc0ee Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Tue, 11 Nov 2014 09:56:14 +0100 Subject: [PATCH] send "cancelled" event on preloaded process exit to comply to messaging protocol --- .../org/jetbrains/jps/cmdline/BuildMain.java | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/jps/jps-builders/src/org/jetbrains/jps/cmdline/BuildMain.java b/jps/jps-builders/src/org/jetbrains/jps/cmdline/BuildMain.java index 1753be6d6617..f0e716318aa4 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/cmdline/BuildMain.java +++ b/jps/jps-builders/src/org/jetbrains/jps/cmdline/BuildMain.java @@ -275,19 +275,23 @@ public class BuildMain { session.cancel(); } else { + LOG.info("Build canceled, but no build session is running. Exiting."); try { - LOG.info("Build canceled, but no build session is running. Exiting."); - Thread.interrupted(); // to clear 'interrupted' flag + final CmdlineRemoteProto.Message.BuilderMessage canceledEvent = CmdlineProtoUtil + .createBuildCompletedEvent("build completed", CmdlineRemoteProto.Message.BuilderMessage.BuildEvent.Status.CANCELED); + channel.writeAndFlush(CmdlineProtoUtil.toMessage(mySessionId, canceledEvent)).await(); channel.close(); - final PreloadedData preloaded = ourPreloadedData; - final ProjectDescriptor pd = preloaded != null? preloaded.getProjectDescriptor() : null; - if (pd != null) { - pd.release(); - } } - finally { - System.exit(0); + catch (Throwable e) { + LOG.info(e); } + Thread.interrupted(); // to clear 'interrupted' flag + final PreloadedData preloaded = ourPreloadedData; + final ProjectDescriptor pd = preloaded != null? preloaded.getProjectDescriptor() : null; + if (pd != null) { + pd.release(); + } + System.exit(0); } return; }