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

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


The following commit(s) were added to refs/heads/main by this push:
     new 4a32a6d  Adds "jakarta.annotation" to filter
4a32a6d is described below

commit 4a32a6d0fe66cbc496e618584be4d167c72e1c16
Author: Piotr P. Karwasz <piotr.git...@karwasz.org>
AuthorDate: Fri Jan 28 09:33:04 2022 +0100

    Adds "jakarta.annotation" to filter
    
    Some users from mistakenly add `jakarta.annotation-api` to their
    applications, which prevents Tomcat from finding @Resource and similar
    annotations on the servlets.
    
    To prevent this "jakarta.annotation" should also be always loaded from
    the common classloader.
---
 java/org/apache/catalina/loader/WebappClassLoaderBase.java | 6 ++++--
 test/org/apache/catalina/loader/TestWebappClassLoader.java | 1 +
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/java/org/apache/catalina/loader/WebappClassLoaderBase.java 
b/java/org/apache/catalina/loader/WebappClassLoaderBase.java
index 85710d8..b10d4fc 100644
--- a/java/org/apache/catalina/loader/WebappClassLoaderBase.java
+++ b/java/org/apache/catalina/loader/WebappClassLoaderBase.java
@@ -2632,7 +2632,8 @@ public abstract class WebappClassLoaderBase extends 
URLClassLoader
                 if (name.startsWith("servlet.jsp.jstl.", 8)) {
                     return false;
                 }
-                if (name.startsWith("el.", 8) ||
+                if (name.startsWith("annotation.", 8) ||
+                    name.startsWith("el.", 8) ||
                     name.startsWith("servlet.", 8) ||
                     name.startsWith("websocket.", 8) ||
                     name.startsWith("security.auth.message.", 8)) {
@@ -2643,7 +2644,8 @@ public abstract class WebappClassLoaderBase extends 
URLClassLoader
                 if (name.startsWith("servlet/jsp/jstl/", 8)) {
                     return false;
                 }
-                if (name.startsWith("el/", 8) ||
+                if (name.startsWith("annotation/", 8) ||
+                    name.startsWith("el/", 8) ||
                     name.startsWith("servlet/", 8) ||
                     name.startsWith("websocket/", 8) ||
                     name.startsWith("security/auth/message/", 8)) {
diff --git a/test/org/apache/catalina/loader/TestWebappClassLoader.java 
b/test/org/apache/catalina/loader/TestWebappClassLoader.java
index d320984..11b53ab 100644
--- a/test/org/apache/catalina/loader/TestWebappClassLoader.java
+++ b/test/org/apache/catalina/loader/TestWebappClassLoader.java
@@ -99,6 +99,7 @@ public class TestWebappClassLoader extends TomcatBaseTest {
             "org.apache.juli",
             "org.apache.naming",
             "org.apache.tomcat",
+            "jakarta.annotation",
             "jakarta.el",
             "jakarta.servlet",
             "jakarta.websocket",

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

Reply via email to