Skip to content

Plugins written for Java 9+ will fail compilation with "checking for wrong usages of ESLogger..." #52408

@dweiss

Description

@dweiss

ES 7.6.0:

> Task :loggerUsageCheck FAILED
| Output for C:\Tools\java\jdk13\bin\java.exe:checking for wrong usages of ESLogger...
| Exception in thread "main" java.lang.IllegalArgumentException
|       at org.objectweb.asm.ClassReader.<init>(ClassReader.java:170)
|       at org.objectweb.asm.ClassReader.<init>(ClassReader.java:153)
|       at org.objectweb.asm.ClassReader.<init>(ClassReader.java:424)
|       at org.elasticsearch.test.loggerusage.ESLoggerUsageChecker.check(ESLoggerUsageChecker.java:125)
|       at org.elasticsearch.test.loggerusage.ESLoggerUsageChecker.check(ESLoggerUsageChecker.java:119)
|       at org.elasticsearch.test.loggerusage.ESLoggerUsageChecker$1.visitFile(ESLoggerUsageChecker.java:109)
|       at org.elasticsearch.test.loggerusage.ESLoggerUsageChecker$1.visitFile(ESLoggerUsageChecker.java:104)
|       at java.base/java.nio.file.Files.walkFileTree(Files.java:2803)
|       at java.base/java.nio.file.Files.walkFileTree(Files.java:2875)
|       at org.elasticsearch.test.loggerusage.ESLoggerUsageChecker.checkLoggerUsage(ESLoggerUsageChecker.java:104)
|       at org.elasticsearch.test.loggerusage.ESLoggerUsageChecker.main(ESLoggerUsageChecker.java:86)

The plugin requires Java 11; the asm library can't parse the bytecode though (even though ES itself requires Java 13).

Workaround:

// logger check does not run on jdk 11 bytecode.
loggerUsageCheck.enabled = false

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions