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 <rmannibu...@gmail.com> Authored: Sat Oct 13 14:05:08 2018 +0200 Committer: Romain Manni-Bucau <rmannibu...@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());