Skip to content

Commit

Permalink
Do runtime re-init for Random classes
Browse files Browse the repository at this point in the history
  • Loading branch information
stuartwdouglas committed Aug 25, 2020
1 parent eb01586 commit eaea538
Showing 1 changed file with 10 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadLocalRandom;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Stream;
Expand All @@ -35,6 +36,7 @@
import io.quarkus.bootstrap.util.IoUtils;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.nativeimage.NativeImageSystemPropertyBuildItem;
import io.quarkus.deployment.builditem.nativeimage.RuntimeReinitializedClassBuildItem;
import io.quarkus.deployment.pkg.NativeConfig;
import io.quarkus.deployment.pkg.PackageConfig;
import io.quarkus.deployment.pkg.builditem.ArtifactResultBuildItem;
Expand Down Expand Up @@ -647,6 +649,14 @@ private static void objcopy(String... args) {
}
}

//https://github.com/quarkusio/quarkus/issues/11573
//https://github.com/oracle/graal/issues/1610
@BuildStep
List<RuntimeReinitializedClassBuildItem> graalVmWorkaround() {
return Arrays.asList(new RuntimeReinitializedClassBuildItem(ThreadLocalRandom.class.getName()),
new RuntimeReinitializedClassBuildItem("java.lang.Math$RandomNumberGeneratorHolder"));
}

protected static final class GraalVM {
static final class Version implements Comparable<Version> {
private static final Pattern PATTERN = Pattern.compile(
Expand Down

0 comments on commit eaea538

Please sign in to comment.