diff --git a/src/main/java/com/comphenix/protocol/utility/CachedPackage.java b/src/main/java/com/comphenix/protocol/utility/CachedPackage.java index dc4398ef1..83df08bed 100644 --- a/src/main/java/com/comphenix/protocol/utility/CachedPackage.java +++ b/src/main/java/com/comphenix/protocol/utility/CachedPackage.java @@ -88,20 +88,23 @@ private Optional> resolveClass(String className) { * @throws RuntimeException If we are unable to find the given class. */ public Optional> getPackageClass(String className, String... aliases) { - return cache.computeIfAbsent(className, x -> { - Optional> clazz = resolveClass(className); - if (clazz.isPresent()) { - return clazz; - } + Optional> cached = cache.get(className); + if (cached != null) { + return cached; + } + Optional> clazz = resolveClass(className); + if (!clazz.isPresent()) { for (String alias : aliases) { - clazz = resolveClass(alias); - if (clazz.isPresent()) { - return clazz; + Optional> aliasClazz = resolveClass(alias); + if (aliasClazz.isPresent()) { + clazz = aliasClazz; + break; } } + } - return Optional.empty(); - }); + cache.put(className, clazz); + return clazz; } }