From 846cc82c3f8a9bc59044f46fb22be54b562918a9 Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Wed, 14 Dec 2016 19:14:24 +0100 Subject: [PATCH] do not fail compilation because of problems in custom extensions; exceptions from custom extensions are now logged --- .../src/com/intellij/compiler/CompilerManagerImpl.java | 6 ++++++ .../src/org/jetbrains/jps/javac/JavacMain.java | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/java/compiler/impl/src/com/intellij/compiler/CompilerManagerImpl.java b/java/compiler/impl/src/com/intellij/compiler/CompilerManagerImpl.java index 709a52a91888..edc9bac68de5 100644 --- a/java/compiler/impl/src/com/intellij/compiler/CompilerManagerImpl.java +++ b/java/compiler/impl/src/com/intellij/compiler/CompilerManagerImpl.java @@ -24,6 +24,7 @@ import com.intellij.openapi.compiler.*; import com.intellij.openapi.compiler.Compiler; import com.intellij.openapi.compiler.util.InspectionValidator; import com.intellij.openapi.compiler.util.InspectionValidatorWrapper; +import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.fileTypes.StdFileTypes; @@ -64,6 +65,8 @@ import java.util.*; import java.util.concurrent.Semaphore; public class CompilerManagerImpl extends CompilerManager { + private static final Logger LOG = Logger.getInstance("#com.intellij.compiler.CompilerManagerImpl"); + private final Project myProject; private final List myCompilers = new ArrayList<>(); @@ -507,6 +510,9 @@ public class CompilerManagerImpl extends CompilerManager { public void outputLineAvailable(String line) { // for debugging purposes uncomment this line //System.out.println(line); + if (line != null && line.startsWith(ExternalJavacManager.STDERR_LINE_PREFIX)) { + LOG.info(line.trim()); + } } public void registerImports(String className, Collection imports, Collection staticImports) { diff --git a/jps/jps-builders-6/src/org/jetbrains/jps/javac/JavacMain.java b/jps/jps-builders-6/src/org/jetbrains/jps/javac/JavacMain.java index 333d125018d5..0de00ccf2c19 100644 --- a/jps/jps-builders-6/src/org/jetbrains/jps/javac/JavacMain.java +++ b/jps/jps-builders-6/src/org/jetbrains/jps/javac/JavacMain.java @@ -167,7 +167,13 @@ public class JavacMain { out, wrapWithCallDispatcher(fileManager), diagnosticConsumer, _options, null, fileManager.getJavaFileObjectsFromFiles(sources) ); for (JavaCompilerToolExtension extension : JavaCompilerToolExtension.getExtensions()) { - extension.beforeCompileTaskExecution(compilingTool, task, _options, diagnosticConsumer); + try { + extension.beforeCompileTaskExecution(compilingTool, task, _options, diagnosticConsumer); + } + catch (Throwable e) { + fileManager.getContext().reportMessage(Diagnostic.Kind.MANDATORY_WARNING, extension.getId() + ": " + e.getMessage()); + e.printStackTrace(System.err); + } } //if (!IS_VM_6_VERSION) { //todo!