package org.jetbrains.jps.incremental;
+import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.util.io.PersistentEnumerator;
import org.jetbrains.jps.*;
import org.jetbrains.jps.api.CanceledStatus;
import org.jetbrains.jps.api.RequestFuture;
import org.jetbrains.jps.incremental.java.ExternalJavacDescriptor;
+import org.jetbrains.jps.incremental.java.JavaBuilder;
import org.jetbrains.jps.incremental.messages.BuildMessage;
import org.jetbrains.jps.incremental.messages.CompilerMessage;
import org.jetbrains.jps.incremental.messages.ProgressMessage;
* Date: 9/17/11
*/
public class IncProjectBuilder {
+ private static final Logger LOG = Logger.getInstance("#org.jetbrains.jps.incremental.IncProjectBuilder");
public static final String JPS_SERVER_NAME = "JPS BUILD";
private static final String CANCELED_MESSAGE = "The build has been canceled";
cleanupJavacNameTable();
}
+ private static boolean ourClenupFailed = false;
private static void cleanupJavacNameTable() {
try {
- final Field freelistField = Class.forName("com.sun.tools.javac.util.Name$Table").getDeclaredField("freelist");
- freelistField.setAccessible(true);
- freelistField.set(null, com.sun.tools.javac.util.List.nil());
+ if (JavaBuilder.USE_EMBEDDED_JAVAC && !ourClenupFailed) {
+ final Field freelistField = Class.forName("com.sun.tools.javac.util.Name$Table").getDeclaredField("freelist");
+ freelistField.setAccessible(true);
+ freelistField.set(null, com.sun.tools.javac.util.List.nil());
+ }
}
catch (Throwable e) {
- e.printStackTrace();
+ ourClenupFailed = true;
+ LOG.info(e);
}
}
import org.objectweb.asm.Opcodes;
import org.objectweb.asm.commons.EmptyVisitor;
-import javax.tools.Diagnostic;
-import javax.tools.JavaFileObject;
+import javax.tools.*;
import java.io.*;
import java.net.MalformedURLException;
import java.net.ServerSocket;
public static final String BUILDER_NAME = "java";
private static final String JAVA_EXTENSION = ".java";
private static final String FORM_EXTENSION = ".form";
- private static final boolean USE_EMBEDDED_JAVAC = System.getProperty(GlobalOptions.USE_EXTERNAL_JAVAC_OPTION) == null;
+ public static final boolean USE_EMBEDDED_JAVAC = System.getProperty(GlobalOptions.USE_EXTERNAL_JAVAC_OPTION) == null;
private static final FileFilter JAVA_SOURCES_FILTER = new FileFilter() {
public boolean accept(File file) {