in log4j-weaver/src/main/java/org/apache/logging/log4j/weaver/LocationCacheGenerator.java [175:191]
private static void writeEntryExitMessage(final InstructionAdapter mv, final SupplierLambdaType type) {
final Type[] args = type.getArgumentTypes();
mv.visitCode();
mv.visitMaxs(args.length, args.length);
mv.load(0, LOGGER_TYPE);
mv.invokeinterface(LOGGER_TYPE.getInternalName(), "getFlowMessageFactory",
Type.getMethodDescriptor(FLOW_MESSAGE_FACTORY_TYPE));
for (int i = 1; i < args.length; i++) {
mv.load(i, args[i]);
}
final boolean isEntry = type.name().startsWith("ENTRY");
final String methodName = isEntry ? "newEntryMessage" : "newExitMessage";
mv.invokeinterface(FLOW_MESSAGE_FACTORY_TYPE.getInternalName(), methodName, Type.getMethodDescriptor(
isEntry ? ENTRY_MESSAGE_TYPE : EXIT_MESSAGE_TYPE, Arrays.copyOfRange(args, 1, args.length)));
mv.areturn(MESSAGE_TYPE);
mv.visitEnd();
}