You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Misagh Moayyed (Jira)" <ji...@apache.org> on 2023/10/02 08:03:00 UTC
[jira] [Created] (LOG4J2-3671) Support (and upgrade to) LMAX Disruptor 4.0.0
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)