Hello, after upgrade of spring boot from 2.3.8 to 2.3.9 I'm facing issues in test (mainly integration tets) bellow is the stacktrace.

If I change the tomcat dependency back to version 9.0.41, then everything works. I even tried to change to 9.0.44 but that didn't solved the issue (9.0.42 seems to be missing some dependencies).

jdk that I'm using is: openjdk 11.0.10 2021-01-19

Unfortunatelly I can't provide example as this is huge private project but if there is something with what I can help just let me know.

java.lang.LinkageError: loader 'app' attempted duplicate class definition for org.apache.catalina.authenticator.jaspic.AuthConfigFactoryImpl. (org.apache.catalina.authenticator.jaspic.AuthConfigFactoryImpl is in unnamed module of loader 'app')
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
    at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
    at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    at org.apache.catalina.authenticator.AuthenticatorBase.findJaspicProvider(AuthenticatorBase.java:1416)
    at org.apache.catalina.authenticator.AuthenticatorBase.getJaspicProvider(AuthenticatorBase.java:1409)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:533)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:834)

Comment From: wilkinsona

Thanks for the report, but given that no Spring Boot code appears in the stack trace, Spring Boot's ClassLoader isn't involved, and that it works with Tomcat 9.0.41, I think the most likely cause is a change in Tomcat. Please open a Tomcat issue and comment here with a link to it so that we can follow along.

Comment From: bilak

tomcat issue here