From 5c048e9ae319606bcd2806778531c05530924286 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 8 Jun 2020 12:22:40 -0400 Subject: [PATCH] Fix timings task name generation for extreme cases - Fixes #3499 I'm going make a class, and in that class i'm going to make a method. And in that method, I'm going to make a local class. And then in that local class, I'm going to make another inner class. I heard you like complex class trees. --- Spigot-Server-Patches/Timings-v2.patch | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Spigot-Server-Patches/Timings-v2.patch b/Spigot-Server-Patches/Timings-v2.patch index 6e058fc5ce..178c10d45b 100644 --- a/Spigot-Server-Patches/Timings-v2.patch +++ b/Spigot-Server-Patches/Timings-v2.patch @@ -81,13 +81,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + + final String taskname = taskNameCache.computeIfAbsent(taskClass, clazz -> { + try { -+ String clsName = clazz.isAnonymousClass() || clazz.isLocalClass() ++ String clsName = !clazz.isMemberClass() + ? clazz.getName() + : clazz.getCanonicalName(); -+ if (clsName.contains("$Lambda$")) { ++ if (clsName != null && clsName.contains("$Lambda$")) { + clsName = clsName.replaceAll("(Lambda\\$.*?)/.*", "$1"); + } -+ return clsName; ++ return clsName != null ? clsName : "UnknownTask"; + } catch (Throwable ex) { + new Exception("Error occurred detecting class name", ex).printStackTrace(); + return "MangledClassFile";