From d0c2ec1331bd1324c7e53832e90f808b3e2602a3 Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Tue, 21 Feb 2012 14:19:12 +0100 Subject: [PATCH] disable ImportsCollector for jdk1.6 due to javac's undesirable side effects. (works fine for jdk 1.7) --- .../src/org/jetbrains/jps/javac/JavacMain.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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 b87db92df1ee..588d0da4620f 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/javac/JavacMain.java +++ b/jps/jps-builders/src/org/jetbrains/jps/javac/JavacMain.java @@ -14,6 +14,7 @@ import java.util.*; * Date: 1/21/12 */ public class JavacMain { + private static final boolean IS_VM_6_VERSION = System.getProperty("java.version", "1.6").contains("1.6"); private static final Set FILTERED_OPTIONS = new HashSet(Arrays.asList( "-d", "-classpath", "-cp", "-bootclasspath" )); @@ -69,8 +70,13 @@ public class JavacMain { final JavaCompiler.CompilationTask task = compiler.getTask( out, fileManager, outConsumer, _options, null, fileManager.toJavaFileObjects(sources) ); - final JavacASTAnalyser analyzer = new JavacASTAnalyser(outConsumer, shouldSuppressAnnotationProcessing(options)); - task.setProcessors(Collections.singleton(analyzer)); + + if (!IS_VM_6_VERSION) { + // Do not add the processor for JDK 1.6 because of the bugs in javac + // The processor's presence may lead to NPE and resolve bugs in compiler + final JavacASTAnalyser analyzer = new JavacASTAnalyser(outConsumer, shouldSuppressAnnotationProcessing(options)); + task.setProcessors(Collections.singleton(analyzer)); + } return task.call(); } catch(IllegalArgumentException e) {