build javac ast index only when compilation invoked from IDE

It makes no sense to build it in standalone mode and this also may lead to exceptions in case of improperly configured classloaders (IDEA-162877)
This commit is contained in:
nik
2016-10-20 10:58:37 +03:00
parent 611018f2fa
commit 681cc35b77
3 changed files with 10 additions and 1 deletions
@@ -17,6 +17,7 @@ package com.intellij.compiler.server;
import com.intellij.ProjectTopics;
import com.intellij.compiler.CompilerConfiguration;
import com.intellij.compiler.CompilerReferenceService;
import com.intellij.compiler.CompilerWorkspaceConfiguration;
import com.intellij.compiler.impl.CompilerUtil;
import com.intellij.compiler.impl.javaCompiler.javac.JavacConfiguration;
@@ -104,6 +105,7 @@ import org.jetbrains.jps.cmdline.BuildMain;
import org.jetbrains.jps.cmdline.ClasspathBootstrap;
import org.jetbrains.jps.incremental.Utils;
import org.jetbrains.jps.model.java.JpsJavaSdkType;
import org.jetbrains.jps.model.java.compiler.JpsJavaCompilerOptions;
import org.jetbrains.jps.model.serialization.JpsGlobalLoader;
import javax.tools.*;
@@ -1081,6 +1083,7 @@ public class BuildManager implements Disposable {
}
cmdLine.addParameter("-D"+ GlobalOptions.COMPILE_PARALLEL_OPTION +"=" + Boolean.toString(config.PARALLEL_COMPILATION));
cmdLine.addParameter("-D"+ GlobalOptions.REBUILD_ON_DEPENDENCY_CHANGE_OPTION + "=" + Boolean.toString(config.REBUILD_ON_DEPENDENCY_CHANGE));
cmdLine.addParameter("-D" + JpsJavaCompilerOptions.COLLECT_REFERENCES_PROPERTY + "=" + CompilerReferenceService.isEnabled());
if (Boolean.TRUE.equals(Boolean.valueOf(System.getProperty("java.net.preferIPv4Stack", "false")))) {
cmdLine.addParameter("-Djava.net.preferIPv4Stack=true");
@@ -16,6 +16,7 @@
package org.jetbrains.jps.builders.impl.java;
import com.intellij.util.ExceptionUtil;
import com.intellij.util.SystemProperties;
import com.sun.source.util.JavacTask;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -24,6 +25,7 @@ import org.jetbrains.jps.builders.java.JavaCompilingTool;
import org.jetbrains.jps.javac.JavacMain;
import org.jetbrains.jps.javac.ast.JavacReferencesCollector;
import org.jetbrains.jps.model.java.compiler.JavaCompilers;
import org.jetbrains.jps.model.java.compiler.JpsJavaCompilerOptions;
import javax.tools.*;
import java.io.File;
@@ -85,6 +87,8 @@ public class JavacCompilerTool extends JavaCompilingTool {
@Override
public void prepareCompilationTask(@NotNull JavaCompiler.CompilationTask task, @NotNull Collection<String> options) {
JavacReferencesCollector.installOn((JavacTask)task);
if (SystemProperties.getBooleanProperty(JpsJavaCompilerOptions.COLLECT_REFERENCES_PROPERTY, false)) {
JavacReferencesCollector.installOn((JavacTask)task);
}
}
}
@@ -19,6 +19,8 @@ package org.jetbrains.jps.model.java.compiler;
* @author nik
*/
public class JpsJavaCompilerOptions {
public static final String COLLECT_REFERENCES_PROPERTY = "jps.javac.collect.references";
public boolean DEBUGGING_INFO = true;
public boolean GENERATE_NO_WARNINGS = false;
public boolean DEPRECATION = true;