Skip to content

Support for com.lmax:disruptor:4 #1829

@ashr123

Description

@ashr123

Description

When I run with async logger and com.lmax:disruptor:4, I get the following error:

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.AsyncLoggerConfigDisruptor.start(AsyncLoggerConfigDisruptor.java:226)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:312)
	at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:621)
	at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:694)
	at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:711)
	at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:253)
	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.logging.log4j.LogManager.getLogger(LogManager.java:599)
	at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:585)
	... 1 more
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)
	... 21 more

Configuration

{
  "Configuration": {
    "Appenders": {
      "Console": {
        "name": "Console-Appender",
        "target": "SYSTEM_ERR",
        "PatternLayout": {
          "pattern": "%d{DEFAULT} [%level] - %msg%n"
        }
      },
      "Async": {
        "name": "Async-Console-Appender",
        "AppenderRef": {
          "ref": "Console-Appender"
        },
        "LinkedTransferQueue": {}
      }
    },
    "Loggers": {
      "AsyncRoot": {
        "level": "INFO",
        "AppenderRef": {
          "ref": "Async-Console-Appender"
        }
      }
    }
  }
}

Version: 2.20.0
Operating system: MacOS 13.6
JDK: OpenJDK 21

Reproduction

Just run an Java class with the following static field:

private static final Logger LOGGER = LogManager.getLogger();

Metadata

Metadata

Assignees

Labels

asyncAffects asynchronous loggers or appendersbugIncorrect, unexpected, or unintended behavior of existing codedependenciesRelated to third party dependency updates or migrations

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions