You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2019/07/04 21:03:58 UTC

[tomcat] branch master updated: Add a few GraalVM cleanups

This is an automated email from the ASF dual-hosted git repository.

remm pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/master by this push:
     new 65aec2a  Add a few GraalVM cleanups
65aec2a is described below

commit 65aec2ac7fb4980694291e66efd360195dfa8d73
Author: remm <re...@apache.org>
AuthorDate: Thu Jul 4 23:03:50 2019 +0200

    Add a few GraalVM cleanups
    
    More importantly default CL to delegate with a native image.
---
 java/org/apache/catalina/core/StandardContext.java             | 5 ++++-
 java/org/apache/catalina/loader/ParallelWebappClassLoader.java | 7 ++++---
 java/org/apache/catalina/loader/WebappLoader.java              | 6 +++++-
 webapps/docs/changelog.xml                                     | 7 +++++++
 4 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/java/org/apache/catalina/core/StandardContext.java b/java/org/apache/catalina/core/StandardContext.java
index 975b81e..a3f03fc 100644
--- a/java/org/apache/catalina/core/StandardContext.java
+++ b/java/org/apache/catalina/core/StandardContext.java
@@ -116,6 +116,7 @@ import org.apache.tomcat.JarScanner;
 import org.apache.tomcat.util.ExceptionUtils;
 import org.apache.tomcat.util.IntrospectionUtils;
 import org.apache.tomcat.util.buf.StringUtils;
+import org.apache.tomcat.util.compat.JreCompat;
 import org.apache.tomcat.util.descriptor.XmlIdentifiers;
 import org.apache.tomcat.util.descriptor.web.ApplicationParameter;
 import org.apache.tomcat.util.descriptor.web.ErrorPage;
@@ -329,8 +330,10 @@ public class StandardContext extends ContainerBase
     /**
      * The "follow standard delegation model" flag that will be used to
      * configure our ClassLoader.
+     * Graal cannot actually load a class from the webapp classloader,
+     * so delegate by default.
      */
-    private boolean delegate = false;
+    private boolean delegate = JreCompat.isGraalAvailable();
 
 
     private boolean denyUncoveredHttpMethods;
diff --git a/java/org/apache/catalina/loader/ParallelWebappClassLoader.java b/java/org/apache/catalina/loader/ParallelWebappClassLoader.java
index a71d26d..9f6b469 100644
--- a/java/org/apache/catalina/loader/ParallelWebappClassLoader.java
+++ b/java/org/apache/catalina/loader/ParallelWebappClassLoader.java
@@ -26,9 +26,10 @@ public class ParallelWebappClassLoader extends WebappClassLoaderBase {
     private static final Log log = LogFactory.getLog(ParallelWebappClassLoader.class);
 
     static {
-        boolean result = !JreCompat.isGraalAvailable() && ClassLoader.registerAsParallelCapable();
-        if (!result) {
-            log.warn(sm.getString("webappClassLoaderParallel.registrationFailed"));
+        if (!JreCompat.isGraalAvailable()) {
+            if (!ClassLoader.registerAsParallelCapable()) {
+                log.warn(sm.getString("webappClassLoaderParallel.registrationFailed"));
+            }
         }
     }
 
diff --git a/java/org/apache/catalina/loader/WebappLoader.java b/java/org/apache/catalina/loader/WebappLoader.java
index 0080778..d967e15 100644
--- a/java/org/apache/catalina/loader/WebappLoader.java
+++ b/java/org/apache/catalina/loader/WebappLoader.java
@@ -40,6 +40,7 @@ import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.ExceptionUtils;
 import org.apache.tomcat.util.buf.UDecoder;
+import org.apache.tomcat.util.compat.JreCompat;
 import org.apache.tomcat.util.modeler.Registry;
 import org.apache.tomcat.util.res.StringManager;
 
@@ -624,7 +625,10 @@ public class WebappLoader extends LifecycleMBeanBase
             }
             return false;
         } else {
-            log.info(sm.getString("webappLoader.unknownClassLoader", loader, loader.getClass()));
+            // Ignore Graal "unknown" classloader
+            if (!JreCompat.isGraalAvailable()) {
+                log.info(sm.getString("webappLoader.unknownClassLoader", loader, loader.getClass()));
+            }
             return false;
         }
         return true;
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 7adb842..d0062c5 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -45,6 +45,13 @@
   issues do not "pop up" wrt. others).
 -->
 <section name="Tomcat 9.0.23 (markt)" rtext="in development">
+  <subsection name="Other">
+    <changelog>
+      <fix>
+        Improvements and workarounds for GraalVM native images. (remm)
+      </fix>
+    </changelog>
+  </subsection>
 </section>
 <section name="Tomcat 9.0.22 (markt)" rtext="release in progress">
   <subsection name="Catalina">


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org