diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/java/JavaBuilder.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/java/JavaBuilder.java index abcb48adad05..d37ffe7dd213 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/java/JavaBuilder.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/java/JavaBuilder.java @@ -300,6 +300,9 @@ public class JavaBuilder extends ModuleLevelBuilder { diagnosticSink.report(new PlainMessageDiagnostic(Diagnostic.Kind.ERROR, "Compilation failed: internal java compiler error")); } if (diagnosticSink.getErrorCount() > 0) { + if (!compiledOk) { + diagnosticSink.report(new PlainMessageDiagnostic(Diagnostic.Kind.ERROR, "Errors occurred while compiling module '" + chunkName + "'")); + } throw new ProjectBuildException( "Compilation failed: errors: " + diagnosticSink.getErrorCount() + "; warnings: " + diagnosticSink.getWarningCount() ); @@ -518,12 +521,14 @@ public class JavaBuilder extends ModuleLevelBuilder { loadJavacOptions(context); cached = JAVAC_OPTIONS.get(context); } - return cached; - //final List options = new ArrayList(cached); - //final Module module = chunk.getModules().iterator().next(); - //final String langlevel = module.getLanguageLevel(); - //final Sdk sdk = module.getSdk(); - //return options; + final List options = new ArrayList(cached); + final Module module = chunk.getModules().iterator().next(); + final String langlevel = module.getLanguageLevel(); + if (!StringUtil.isEmpty(langlevel)) { + options.add("-source"); + options.add(langlevel); + } + return options; } private static void loadJavacOptions(CompileContext context) { diff --git a/jps/jps-builders/src/org/jetbrains/jps/javac/JavacMain.java b/jps/jps-builders/src/org/jetbrains/jps/javac/JavacMain.java index 5074b89b9d46..b87db92df1ee 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/javac/JavacMain.java +++ b/jps/jps-builders/src/org/jetbrains/jps/javac/JavacMain.java @@ -73,9 +73,13 @@ public class JavacMain { task.setProcessors(Collections.singleton(analyzer)); return task.call(); } + catch(IllegalArgumentException e) { + outConsumer.report(new PlainMessageDiagnostic(Diagnostic.Kind.ERROR, e.getMessage())); + } finally { fileManager.close(); } + return false; } private static boolean shouldSuppressAnnotationProcessing(final Collection options) {