This is an automated email from the ASF dual-hosted git repository. fhanik pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/9.0.x by this push: new 87cbed1 Revert "Simpler way to determine Graal runtime" 87cbed1 is described below commit 87cbed1244205fb112f421449482d02b56f6167b Author: Filip Hanik <fha...@pivotal.io> AuthorDate: Wed Jul 22 11:40:14 2020 -0700 Revert "Simpler way to determine Graal runtime" This reverts commit 6a73695fa6d024ed9fc4adeb32073cbd94309c51. https://tomcat.markmail.org/search/?q=#query:%20list%3Aorg.apache.tomcat.dev+page:1+mid:7vo7ugmqjz2z7x5f+state:results --- java/org/apache/jasper/runtime/JspRuntimeLibrary.java | 16 +++++++++++++++- java/org/apache/naming/NamingContext.java | 15 ++++++++++++++- java/org/apache/tomcat/util/compat/GraalCompat.java | 15 ++++++++++++++- 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/java/org/apache/jasper/runtime/JspRuntimeLibrary.java b/java/org/apache/jasper/runtime/JspRuntimeLibrary.java index d710f84..c0a7a63 100644 --- a/java/org/apache/jasper/runtime/JspRuntimeLibrary.java +++ b/java/org/apache/jasper/runtime/JspRuntimeLibrary.java @@ -56,7 +56,21 @@ import org.apache.tomcat.InstanceManager; */ public class JspRuntimeLibrary { - public static final boolean GRAAL = System.getProperty("org.graalvm.nativeimage.imagecode") != null; + public static final boolean GRAAL; + + static { + boolean result = false; + try { + Class<?> nativeImageClazz = Class.forName("org.graalvm.nativeimage.ImageInfo"); + result = nativeImageClazz.getMethod("inImageCode").invoke(null) != null; + // Note: This will also be true for the Graal substrate VM + } catch (ClassNotFoundException e) { + // Must be Graal + } catch (ReflectiveOperationException | IllegalArgumentException e) { + // Should never happen + } + GRAAL = result; + } /** * Returns the value of the javax.servlet.error.exception request diff --git a/java/org/apache/naming/NamingContext.java b/java/org/apache/naming/NamingContext.java index 40f4085..0471279 100644 --- a/java/org/apache/naming/NamingContext.java +++ b/java/org/apache/naming/NamingContext.java @@ -792,7 +792,20 @@ public class NamingContext implements Context { // ------------------------------------------------------ Protected Methods - private static final boolean GRAAL = System.getProperty("org.graalvm.nativeimage.imagecode") != null; + private static final boolean GRAAL; + + static { + boolean result = false; + try { + Class<?> nativeImageClazz = Class.forName("org.graalvm.nativeimage.ImageInfo"); + result = Boolean.TRUE.equals(nativeImageClazz.getMethod("inImageCode").invoke(null)); + } catch (ClassNotFoundException e) { + // Must be Graal + } catch (ReflectiveOperationException | IllegalArgumentException e) { + // Should never happen + } + GRAAL = result; + } /** * Retrieves the named object. diff --git a/java/org/apache/tomcat/util/compat/GraalCompat.java b/java/org/apache/tomcat/util/compat/GraalCompat.java index e3cb09d..9fb835a 100644 --- a/java/org/apache/tomcat/util/compat/GraalCompat.java +++ b/java/org/apache/tomcat/util/compat/GraalCompat.java @@ -20,7 +20,20 @@ import java.io.IOException; class GraalCompat extends Jre9Compat { - private static final boolean GRAAL = System.getProperty("org.graalvm.nativeimage.imagecode") != null; + private static final boolean GRAAL; + + static { + boolean result = false; + try { + Class<?> nativeImageClazz = Class.forName("org.graalvm.nativeimage.ImageInfo"); + result = Boolean.TRUE.equals(nativeImageClazz.getMethod("inImageCode").invoke(null)); + } catch (ClassNotFoundException e) { + // Must be Graal + } catch (ReflectiveOperationException | IllegalArgumentException e) { + // Should never happen + } + GRAAL = result; + } static boolean isSupported() { // This property does not exist for a native image --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org