Skip to content
This repository has been archived by the owner on Aug 5, 2024. It is now read-only.

Commit

Permalink
Handle the case when there is no JDK in the project
Browse files Browse the repository at this point in the history
  • Loading branch information
agluszak committed Mar 21, 2022
1 parent 66485be commit a69b710
Showing 1 changed file with 9 additions and 6 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.jetbrains.bsp.bazel.server.sync.languages.java;

import io.vavr.PartialFunction;
import io.vavr.collection.List;
import io.vavr.collection.Seq;
import io.vavr.control.Option;
import java.net.URI;
Expand Down Expand Up @@ -32,14 +33,16 @@ public Option<Jdk> resolve(Seq<TargetInfo> targets) {
}

private Seq<JdkCandidate> candidatesWithLatestVersion(Seq<JdkCandidate> candidates) {
var version = findLatestVersion(candidates);
var byVersion = candidates.filter(candidate -> candidate.version.contains(version));
var latestVersion = findLatestVersion(candidates);
var byVersion =
latestVersion.map(
version -> candidates.filter(candidate -> candidate.version.contains(version)));
// sorted for deterministic output
return byVersion.sortBy(c -> c.javaHome.toString());
return byVersion.getOrElse(List.empty()).sortBy(c -> c.javaHome.toString());
}

private String findLatestVersion(Seq<JdkCandidate> candidates) {
return candidates.flatMap(c -> c.version).maxBy(s -> Integer.valueOf(s)).get();
private Option<String> findLatestVersion(Seq<JdkCandidate> candidates) {
return candidates.flatMap(c -> c.version).maxBy(s -> Integer.valueOf(s));
}

private Option<JdkCandidate> pickCandidateFromJvmRuntime(Seq<JdkCandidate> candidates) {
Expand All @@ -57,7 +60,7 @@ private Option<JdkCandidate> createHybridCandidate(Seq<JdkCandidate> candidates)
.sortBy(c -> !c.isRuntime)
.collect(PartialFunction.unlift(c -> c.javaHome))
.headOption();
return javaHome.map(jh -> new JdkCandidate(true, javaHome, Option.some(version)));
return javaHome.map(jh -> new JdkCandidate(true, javaHome, version));
}

private Option<JdkCandidate> resolveJdk(TargetInfo targetInfo) {
Expand Down

0 comments on commit a69b710

Please sign in to comment.