Skip to content

Commit

Permalink
more logging for the transformer
Browse files Browse the repository at this point in the history
  • Loading branch information
Lyfts committed Oct 10, 2024
1 parent 76dc580 commit eb1bd97
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -80,19 +80,35 @@ public byte[] transform(String name, String transformedName, byte[] basicClass)
boolean condition = usableAnnotations.containsKey(CONDITION_DESC);
if ((mn.access & Opcodes.ACC_STATIC) == 0) {
if (!condition && subscribe != null) {
EventBusUtil.addInvalidMethod(transformedName, mn.name + mn.desc);
EventBusUtil.getInvalidMethods().add(
"Encountered unexpected non-static method: " + transformedName + " " + mn.name + mn.desc);
}
continue;
}

if (condition) {
if (mn.desc.equals("()Z")) {
EventBusUtil.getConditionsToCheck().put(transformedName, mn.name + mn.desc);
} else {
EventBusUtil.getInvalidMethods().add(
"Invalid condition method: " + transformedName
+ " "
+ mn.name
+ mn.desc
+ ". Condition method must have no parameters and return a boolean.");
}
continue;
}

if (subscribe == null) continue;
if (subscribe == null) {
if (DEBUG_EVENT_BUS) {
LOGGER.info(
"Skipping method {} with annotations {}. No @SubscribeEvent found.",
transformedName,
usableAnnotations.keySet());
}
continue;
}
Object[] subscribeInfo = getSubscribeInfo(subscribe);
MethodInfo methodInfo = new MethodInfo(
transformedName,
Expand All @@ -104,10 +120,19 @@ public byte[] transform(String name, String transformedName, byte[] basicClass)
if (optional != null) {
List<Object> values = optional.values;
methodInfo.setOptionalMod((String) values.get(1));
if (DEBUG_EVENT_BUS) {
LOGGER.info(
"Found optional mod {} for method {}",
methodInfo.getOptionalMod(),
methodInfo.getKey());
}
}

EventBusUtil.getMethodsToSubscribe().computeIfAbsent(transformedName, k -> new ObjectOpenHashSet<>())
.add(methodInfo);
if (DEBUG_EVENT_BUS) {
LOGGER.info("Found subscribed method {}", methodInfo.getKey());
}
}

return basicClass;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,8 @@ public static void registerSubscribers() {
for (i = 0; i < invalidMethods.size() - 1; i++) {
LOGGER.error(invalidMethods.get(i));
}
throw new IllegalArgumentException(invalidMethods.get(i));
throw new IllegalArgumentException(
"Encountered" + invalidMethods.size() + "invalid methods. " + invalidMethods.get(i));
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import it.unimi.dsi.fastutil.objects.ObjectList;
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
import it.unimi.dsi.fastutil.objects.ObjectSet;
import lombok.AccessLevel;
import lombok.Getter;

public final class EventBusUtil {
Expand All @@ -19,7 +18,7 @@ public final class EventBusUtil {
private static final Object2ObjectMap<String, ObjectSet<MethodInfo>> methodsToSubscribe = new Object2ObjectOpenHashMap<>();
@Getter
private static final Object2ObjectMap<String, String> conditionsToCheck = new Object2ObjectOpenHashMap<>();
@Getter(AccessLevel.PACKAGE)
@Getter
private static final ObjectList<String> invalidMethods = new ObjectArrayList<>();

static String getParameterClassInternal(String desc) {
Expand All @@ -33,8 +32,4 @@ static String getParameterClassName(String desc) {
static String getSimpleClassName(String desc) {
return desc.substring(desc.lastIndexOf(".") + 1);
}

public static void addInvalidMethod(String className, String method) {
invalidMethods.add("Encountered unexpected non-static method: " + className + " " + method);
}
}

0 comments on commit eb1bd97

Please sign in to comment.