From 4cacde00ff92935b5ec02a7ec5c2bb4a5256d468 Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Wed, 19 Oct 2016 21:17:37 +0200 Subject: [PATCH] separate jdk version limits for jps process and javac compiler --- .../intellij/compiler/CompilerManagerImpl.java | 5 ++--- .../intellij/compiler/server/BuildManager.java | 15 +++++++++++---- .../ui/impl/watch/CompilingEvaluatorImpl.java | 2 +- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/compiler/CompilerManagerImpl.java b/java/compiler/impl/src/com/intellij/compiler/CompilerManagerImpl.java index 3fe9cee57f12..9ec8475173f0 100644 --- a/java/compiler/impl/src/com/intellij/compiler/CompilerManagerImpl.java +++ b/java/compiler/impl/src/com/intellij/compiler/CompilerManagerImpl.java @@ -57,8 +57,7 @@ import org.jetbrains.jps.javac.ExternalJavacManager; import org.jetbrains.jps.javac.OutputFileConsumer; import org.jetbrains.jps.javac.OutputFileObject; -import javax.tools.Diagnostic; -import javax.tools.JavaFileObject; +import javax.tools.*; import java.io.File; import java.io.IOException; import java.lang.reflect.Array; @@ -345,7 +344,7 @@ public class CompilerManagerImpl extends CompilerManager { Collection files, File outputDir) throws IOException, CompilationException { - final Pair runtime = BuildManager.getBuildProcessRuntimeSdk(myProject); + final Pair runtime = BuildManager.getJavacRuntimeSdk(myProject); String javaHome = null; final Sdk sdk = runtime.getFirst(); diff --git a/java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java b/java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java index 78d393c99030..7b2acf0ae6be 100644 --- a/java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java +++ b/java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java @@ -876,7 +876,16 @@ public class BuildManager implements Disposable { } @NotNull - public static Pair getBuildProcessRuntimeSdk(Project project) { + public static Pair getBuildProcessRuntimeSdk(@NotNull Project project) { + return getRuntimeSdk(project, JavaSdkVersion.JDK_1_8); + } + + @NotNull + public static Pair getJavacRuntimeSdk(@NotNull Project project) { + return getRuntimeSdk(project, JavaSdkVersion.JDK_1_6); + } + + private static Pair getRuntimeSdk(@NotNull Project project, final JavaSdkVersion oldestPossibleVersion) { final Set candidates = new LinkedHashSet<>(); final Sdk defaultSdk = ProjectRootManager.getInstance(project).getProjectSdk(); if (defaultSdk != null && defaultSdk.getSdkType() instanceof JavaSdkType) { @@ -918,9 +927,7 @@ public class BuildManager implements Disposable { } } - final JavaSdkVersion oldestPossible = JavaSdkVersion.JDK_1_8; - - if (projectJdk == null || sdkVersion == null || !sdkVersion.isAtLeast(oldestPossible)) { + if (projectJdk == null || sdkVersion == null || !sdkVersion.isAtLeast(oldestPossibleVersion)) { final Sdk internalJdk = JavaAwareProjectJdkTableImpl.getInstanceEx().getInternalJdk(); projectJdk = internalJdk; sdkVersion = javaSdkType.getVersion(internalJdk); diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/CompilingEvaluatorImpl.java b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/CompilingEvaluatorImpl.java index f8cb5a487a1d..e7445b0fc3c6 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/CompilingEvaluatorImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/CompilingEvaluatorImpl.java @@ -82,7 +82,7 @@ public class CompilingEvaluatorImpl extends CompilingEvaluator { } JavaBuilder.addAnnotationProcessingOptions(options, profile); - final Pair runtime = BuildManager.getBuildProcessRuntimeSdk(myEvaluationContext.getProject()); + final Pair runtime = BuildManager.getJavacRuntimeSdk(myEvaluationContext.getProject()); final JavaSdkVersion buildRuntimeVersion = runtime.getSecond(); // if compiler or debuggee version or both are unknown, let source and target be the compiler's defaults if (buildRuntimeVersion != null && debuggeeVersion != null) {