Prevent audit spam.

This commit is contained in:
IzzelAliz 2020-07-06 23:56:43 +08:00
parent 64ced609cd
commit 7f7c168a3e

View File

@ -47,8 +47,7 @@ public class InventoryImplementer implements Implementer {
return false; return false;
} }
if (isInventoryClass(node, transformerLoader)) { if (isInventoryClass(node, transformerLoader)) {
tryImplement(node); return tryImplement(node);
return true;
} else return false; } else return false;
} catch (Throwable t) { } catch (Throwable t) {
if (t instanceof LocalizedException) { if (t instanceof LocalizedException) {
@ -95,7 +94,7 @@ public class InventoryImplementer implements Implementer {
} }
} }
private void tryImplement(ClassNode node) { private boolean tryImplement(ClassNode node) {
Set<String> methods = new HashSet<>(); Set<String> methods = new HashSet<>();
for (MethodNode method : node.methods) { for (MethodNode method : node.methods) {
methods.add(method.name + method.desc); methods.add(method.name + method.desc);
@ -103,12 +102,13 @@ public class InventoryImplementer implements Implementer {
if (methods.contains("getViewers()Ljava/util/List;")) { if (methods.contains("getViewers()Ljava/util/List;")) {
ArclightImplementer.LOGGER.debug(MARKER, "Found implemented class {}", node.name); ArclightImplementer.LOGGER.debug(MARKER, "Found implemented class {}", node.name);
node.interfaces.add(BRIDGE_TYPE); node.interfaces.add(BRIDGE_TYPE);
return false;
} else { } else {
List<FieldNode> list = findPossibleList(node); List<FieldNode> list = findPossibleList(node);
if (list.size() != 1) { if (list.size() != 1) {
if (list.size() > 1) { if (list.size() > 1) {
ArclightImplementer.LOGGER.warn(MARKER, "Found multiple possible fields in class {}: {}", node.name, list.stream().map(it -> it.name + it.desc).collect(Collectors.joining(", "))); ArclightImplementer.LOGGER.warn(MARKER, "Found multiple possible fields in class {}: {}", node.name, list.stream().map(it -> it.name + it.desc).collect(Collectors.joining(", ")));
} else return; } else return false;
} }
ArclightImplementer.LOGGER.debug(MARKER, "Implementing inventory for class {}", node.name); ArclightImplementer.LOGGER.debug(MARKER, "Implementing inventory for class {}", node.name);
FieldNode stackList = list.get(0); FieldNode stackList = list.get(0);
@ -178,6 +178,7 @@ public class InventoryImplementer implements Implementer {
methodNode.instructions = insnList; methodNode.instructions = insnList;
node.methods.add(methodNode); node.methods.add(methodNode);
} }
return true;
} }
} }