Misagh Moayyed created LOG4J2-3671: -------------------------------------- Summary: Support (and upgrade to) LMAX Disruptor 4.0.0 Key: LOG4J2-3671 URL: https://issues.apache.org/jira/browse/LOG4J2-3671 Project: Log4j 2 Issue Type: Task Components: Core Affects Versions: 2.20.1 Reporter: Misagh Moayyed
The latest version of the LMAX Disruptor, that is 4.0.0, is not compatible with Log4j v2. Certain classes such as {*}SequenceReportingEventHandler{*}, are removed from Disruptor v4: {code:java} Exception in thread "main" java.lang.NoClassDefFoundError: com/lmax/disruptor/SequenceReportingEventHandler at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) at org.apache.logging.log4j.core.async.AsyncLoggerDisruptor.start(AsyncLoggerDisruptor.java:125) at org.apache.logging.log4j.core.async.AsyncLoggerContext.start(AsyncLoggerContext.java:75) at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155) at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47) at org.apache.logging.log4j.LogManager.getContext(LogManager.java:196) at org.apache.commons.logging.LogAdapter$Log4jLog.<clinit>(LogAdapter.java:146) at org.apache.commons.logging.LogAdapter$Log4jAdapter.createLog(LogAdapter.java:113) at org.apache.commons.logging.LogAdapter.createLog(LogAdapter.java:95) at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:67) at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:59) at org.springframework.boot.SpringApplication.<clinit>(SpringApplication.java:185) at org.springframework.boot.builder.SpringApplicationBuilder.createSpringApplication(SpringApplicationBuilder.java:115) at org.springframework.boot.builder.SpringApplicationBuilder.<init>(SpringApplicationBuilder.java:102) at org.springframework.boot.builder.SpringApplicationBuilder.<init>(SpringApplicationBuilder.java:98) at org.apereo.cas.web.CasWebApplication.main(CasWebApplication.java:51) Caused by: java.lang.ClassNotFoundException: com.lmax.disruptor.SequenceReportingEventHandler at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ... 24 more {code} The current supported version of Disruptor seems to be 3.4.4. -- This message was sent by Atlassian Jira (v8.20.10#820010)