diff --git a/java/compiler/impl/src/com/intellij/compiler/JpsServerManager.java b/java/compiler/impl/src/com/intellij/compiler/JpsServerManager.java index 98fcdb46b58a..9aedd7d49230 100644 --- a/java/compiler/impl/src/com/intellij/compiler/JpsServerManager.java +++ b/java/compiler/impl/src/com/intellij/compiler/JpsServerManager.java @@ -292,8 +292,9 @@ public class JpsServerManager implements ApplicationComponent{ final GeneralCommandLine cmdLine = new GeneralCommandLine(); cmdLine.setExePath(((JavaSdkType)projectJdk.getSdkType()).getVMExecutablePath(projectJdk)); cmdLine.addParameter("-ea"); + cmdLine.addParameter("-XX:+HeapDumpOnOutOfMemoryError"); cmdLine.addParameter("-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5008"); - cmdLine.addParameter("-Xmx256m"); // todo: get this value from settings + cmdLine.addParameter("-Xmx512m"); // todo: get this value from settings cmdLine.addParameter("-classpath"); final List cp = ClasspathBootstrap.getApplicationClasspath(); diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java index bf39ecd3c60e..6602e3455c45 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java @@ -53,20 +53,25 @@ public class IncProjectBuilder { try { cleanOutputRoots(scope, context); + context.processMessage(new ProgressMessage("Running 'before' tasks")); runTasks(context, myBuilderRegistry.getBeforeTasks()); context.setCompilingTests(false); + context.processMessage(new ProgressMessage("Building production sources")); buildChunks(context, myProductionChunks); context.setCompilingTests(true); + context.processMessage(new ProgressMessage("Building test sources")); buildChunks(context, myTestChunks); + context.processMessage(new ProgressMessage("Running 'after' tasks")); runTasks(context, myBuilderRegistry.getAfterTasks()); } catch (ProjectBuildException e) { context.processMessage(new ProgressMessage(e.getMessage())); } finally { + context.processMessage(new ProgressMessage("Build complete")); context.getBuildDataManager().close(); final File mappingsDataFile = Paths.getMappingsStorageFile(myProjectName); try { @@ -144,6 +149,7 @@ public class IncProjectBuilder { } } if (okToDelete) { + context.processMessage(new ProgressMessage("Cleaning " + outputRoot.getPath())); FileUtil.delete(outputRoot); } else { diff --git a/jps/model/src/org/jetbrains/ether/dependencyView/Mappings.java b/jps/model/src/org/jetbrains/ether/dependencyView/Mappings.java index a5e43b9099e3..5bcd6133e9b6 100644 --- a/jps/model/src/org/jetbrains/ether/dependencyView/Mappings.java +++ b/jps/model/src/org/jetbrains/ether/dependencyView/Mappings.java @@ -3,6 +3,7 @@ package org.jetbrains.ether.dependencyView; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.io.FileUtil; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.ether.RW; import org.objectweb.asm.ClassReader; import org.objectweb.asm.Opcodes; @@ -93,8 +94,13 @@ public class Mappings implements RW.Writable { } } + @Nullable private ClassRepr getReprByName(final StringCache.S name) { - final Collection reprs = sourceFileToClasses.foxyGet(classToSourceFile.get(name)); + final StringCache.S source = classToSourceFile.get(name); + + assert source != null; + + final Collection reprs = sourceFileToClasses.foxyGet(source); if (reprs != null) { for (ClassRepr repr : reprs) { @@ -318,7 +324,11 @@ public class Mappings implements RW.Writable { affectedUsages.add(rootUsage); for (StringCache.S p : subclasses) { - final Collection deps = fileToFileDependency.foxyGet(classToSourceFile.get(p)); + final StringCache.S source = classToSourceFile.get(p); + + assert source != null; + + final Collection deps = fileToFileDependency.foxyGet(source); if (deps != null) { dependents.addAll(deps); @@ -336,7 +346,11 @@ public class Mappings implements RW.Writable { affectedUsages.add(rootUsage); for (StringCache.S p : subclasses) { - final Collection deps = fileToFileDependency.foxyGet(classToSourceFile.get(p)); + final StringCache.S source = classToSourceFile.get(p); + + assert source != null; + + final Collection deps = fileToFileDependency.foxyGet(source); if (deps != null) { dependents.addAll(deps); @@ -601,7 +615,11 @@ public class Mappings implements RW.Writable { } if (allAbstract && visited) { - affectedFiles.add(classToSourceFile.get(p)); + final StringCache.S source = classToSourceFile.get(p); + + assert source != null; + + affectedFiles.add(source); } } }