diff --git a/src/main/java/com/comphenix/protocol/utility/CachedPackage.java b/src/main/java/com/comphenix/protocol/utility/CachedPackage.java index 9f375759..515e26d3 100644 --- a/src/main/java/com/comphenix/protocol/utility/CachedPackage.java +++ b/src/main/java/com/comphenix/protocol/utility/CachedPackage.java @@ -75,12 +75,6 @@ final class CachedPackage { return source.loadClass(combine(packageName, className)); } - public Class requireClass(String className) throws ClassNotFoundException { - String canonicalName = combine(packageName, className); - return source.loadClass(canonicalName) - .orElseThrow(() -> new ClassNotFoundException(className)); - } - /** * Retrieve the class object of a specific class in the current package. * @@ -96,7 +90,7 @@ final class CachedPackage { } for (String alias : aliases) { - clazz = resolveClass(className); + clazz = resolveClass(alias); if (clazz.isPresent()) { return clazz; } diff --git a/src/test/java/com/comphenix/protocol/utility/CachedPackageTest.java b/src/test/java/com/comphenix/protocol/utility/CachedPackageTest.java new file mode 100644 index 00000000..0e6c56bc --- /dev/null +++ b/src/test/java/com/comphenix/protocol/utility/CachedPackageTest.java @@ -0,0 +1,37 @@ +package com.comphenix.protocol.utility; + +import java.util.Optional; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +public class CachedPackageTest { + private CachedPackage pack; + + @BeforeEach + public void prepare() { + ClassSource source = ClassSource.fromClassLoader(); + this.pack = new CachedPackage("java.lang", source); + } + + @Test + public void testGetPackageClass() { + Optional> result = pack.getPackageClass("Object"); + assertTrue(result.isPresent()); + assertEquals(result.get(), Object.class); + } + + @Test + public void testUsingAliases() { + Optional> result = pack.getPackageClass("NOT_A_CLASS", "Object"); + assertTrue(result.isPresent()); + assertEquals(result.get(), Object.class); + + result = pack.getPackageClass("NOT_A_CLASS", "STILL_NOT_A_CLASS", "Object"); + assertTrue(result.isPresent()); + assertEquals(result.get(), Object.class); + } +}