You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2018/10/13 12:05:38 UTC

tomee git commit: TOMEE-2258 ensure tomee parent classloader is the correct one and not system loader (default tomcat behavior)

Repository: tomee
Updated Branches:
  refs/heads/master d1c78d231 -> ded08b8b6


TOMEE-2258 ensure tomee parent classloader is the correct one and not system loader (default tomcat behavior)


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/ded08b8b
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/ded08b8b
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/ded08b8b

Branch: refs/heads/master
Commit: ded08b8b6cfbb8689edd16125e7034e6e687bbef
Parents: d1c78d2
Author: Romain Manni-Bucau <rm...@gmail.com>
Authored: Sat Oct 13 14:05:08 2018 +0200
Committer: Romain Manni-Bucau <rm...@gmail.com>
Committed: Sat Oct 13 14:05:08 2018 +0200

----------------------------------------------------------------------
 .../apache/openejb/assembler/classic/Assembler.java    | 13 +------------
 .../org/apache/tomee/catalina/TomcatWebAppBuilder.java |  5 +++++
 2 files changed, 6 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/ded08b8b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
index 5e6bbfe..72659d9 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
@@ -388,18 +388,7 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
                             loader.loadClass("org.apache.bval.cdi.BValExtension$AnnotatedTypeFilter"))
                         .invoke(null, filter);
             } catch (final Throwable th) {
-                // Quick hack to fix TOMEE-2258. Needs to be addressed properly. Fallback to TCCL.
-                try {
-                    final ClassLoader loader = Thread.currentThread().getContextClassLoader();
-                    final Object filter = loader.loadClass("org.apache.openejb.bval.BValCdiFilter").newInstance();
-                    loader.loadClass("org.apache.bval.cdi.BValExtension")
-                          .getMethod(
-                                  "setAnnotatedTypeFilter",
-                                  loader.loadClass("org.apache.bval.cdi.BValExtension$AnnotatedTypeFilter"))
-                          .invoke(null, filter);
-                } catch (Throwable e) {
-                    // ignore, bval not compatible or not present
-                }
+                logger.warning("Can't setup BVal filtering, this can impact negatively performances: " + th.getMessage());
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/tomee/blob/ded08b8b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
index 123c8ea..4e296c3 100644
--- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
+++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
@@ -285,6 +285,7 @@ public class TomcatWebAppBuilder implements WebAppBuilder, ContextListener, Pare
         //Getting host config listeners
         hosts = new Hosts();
         SystemInstance.get().setComponent(Hosts.class, hosts);
+        final ClassLoader tccl = Thread.currentThread().getContextClassLoader();
         for (final Service service : standardServer.findServices()) {
             if (service.getContainer() instanceof Engine) {
                 final Engine engine = service.getContainer();
@@ -298,6 +299,10 @@ public class TomcatWebAppBuilder implements WebAppBuilder, ContextListener, Pare
                 }
 
                 parentClassLoader = engine.getParentClassLoader();
+                if (parentClassLoader == ClassLoader.getSystemClassLoader() && parentClassLoader != tccl) {
+                    parentClassLoader = tccl;
+                    engine.setParentClassLoader(tccl);
+                } // else assume tomcat was setup to force a classloader and then respect it
 
                 manageCluster(engine.getCluster());
                 hosts.setDefault(engine.getDefaultHost());