Update to ASM 7.1 in logger usage check (#52742)

The logger usage check uses its own version of ASM to inspect class
files for logging usages. Master was updated to support java 11
compilation in #40754. However, 7.x still used ASM 5, which could not
read newer java bytecode versions. This commit bumps ASM in 7.x used in
the logger usage check.

closes #52408
This commit is contained in:
Ryan Ernst 2020-03-16 18:50:50 -07:00 committed by GitHub
parent 8c96112613
commit 6a7baddc2b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 3 deletions

View File

@ -18,7 +18,9 @@
*/ */
dependencies { dependencies {
compile 'org.ow2.asm:asm-debug-all:5.0.4' // use asm-debug-all as asm-all is broken compile 'org.ow2.asm:asm:7.1'
compile 'org.ow2.asm:asm-tree:7.1'
compile 'org.ow2.asm:asm-analysis:7.1'
compile "org.apache.logging.log4j:log4j-api:${versions.log4j}" compile "org.apache.logging.log4j:log4j-api:${versions.log4j}"
testCompile project(":test:framework") testCompile project(":test:framework")
} }

View File

@ -188,7 +188,7 @@ public class ESLoggerUsageChecker {
private final Predicate<String> methodsToCheck; private final Predicate<String> methodsToCheck;
ClassChecker(Consumer<WrongLoggerUsage> wrongUsageCallback, Predicate<String> methodsToCheck) { ClassChecker(Consumer<WrongLoggerUsage> wrongUsageCallback, Predicate<String> methodsToCheck) {
super(Opcodes.ASM5); super(Opcodes.ASM7);
this.wrongUsageCallback = wrongUsageCallback; this.wrongUsageCallback = wrongUsageCallback;
this.methodsToCheck = methodsToCheck; this.methodsToCheck = methodsToCheck;
} }
@ -222,7 +222,7 @@ public class ESLoggerUsageChecker {
private boolean ignoreChecks; private boolean ignoreChecks;
MethodChecker(String className, int access, String name, String desc, Consumer<WrongLoggerUsage> wrongUsageCallback) { MethodChecker(String className, int access, String name, String desc, Consumer<WrongLoggerUsage> wrongUsageCallback) {
super(Opcodes.ASM5, new MethodNode(access, name, desc, null, null)); super(Opcodes.ASM7, new MethodNode(access, name, desc, null, null));
this.className = className; this.className = className;
this.wrongUsageCallback = wrongUsageCallback; this.wrongUsageCallback = wrongUsageCallback;
} }
@ -503,6 +503,10 @@ public class ESLoggerUsageChecker {
} }
private static final class PlaceHolderStringInterpreter extends BasicInterpreter { private static final class PlaceHolderStringInterpreter extends BasicInterpreter {
PlaceHolderStringInterpreter() {
super(Opcodes.ASM7);
}
@Override @Override
public BasicValue newOperation(AbstractInsnNode insnNode) throws AnalyzerException { public BasicValue newOperation(AbstractInsnNode insnNode) throws AnalyzerException {
if (insnNode.getOpcode() == Opcodes.LDC) { if (insnNode.getOpcode() == Opcodes.LDC) {
@ -527,6 +531,10 @@ public class ESLoggerUsageChecker {
} }
private static final class ArraySizeInterpreter extends BasicInterpreter { private static final class ArraySizeInterpreter extends BasicInterpreter {
ArraySizeInterpreter() {
super(Opcodes.ASM7);
}
@Override @Override
public BasicValue newOperation(AbstractInsnNode insnNode) throws AnalyzerException { public BasicValue newOperation(AbstractInsnNode insnNode) throws AnalyzerException {
switch (insnNode.getOpcode()) { switch (insnNode.getOpcode()) {