Skip to content

Commit 7217b11

Browse files
committed
Fix reading class aliases
Fixes #2263
1 parent 18c2b38 commit 7217b11

File tree

2 files changed

+38
-7
lines changed

2 files changed

+38
-7
lines changed

src/main/java/com/comphenix/protocol/utility/CachedPackage.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,6 @@ private Optional<Class<?>> resolveClass(String className) {
7575
return source.loadClass(combine(packageName, className));
7676
}
7777

78-
public Class<?> requireClass(String className) throws ClassNotFoundException {
79-
String canonicalName = combine(packageName, className);
80-
return source.loadClass(canonicalName)
81-
.orElseThrow(() -> new ClassNotFoundException(className));
82-
}
83-
8478
/**
8579
* Retrieve the class object of a specific class in the current package.
8680
*
@@ -96,7 +90,7 @@ public Optional<Class<?>> getPackageClass(String className, String... aliases) {
9690
}
9791

9892
for (String alias : aliases) {
99-
clazz = resolveClass(className);
93+
clazz = resolveClass(alias);
10094
if (clazz.isPresent()) {
10195
return clazz;
10296
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.comphenix.protocol.utility;
2+
3+
import java.util.Optional;
4+
5+
import org.junit.jupiter.api.BeforeEach;
6+
import org.junit.jupiter.api.Test;
7+
8+
import static org.junit.jupiter.api.Assertions.assertEquals;
9+
import static org.junit.jupiter.api.Assertions.assertTrue;
10+
11+
public class CachedPackageTest {
12+
private CachedPackage pack;
13+
14+
@BeforeEach
15+
public void prepare() {
16+
ClassSource source = ClassSource.fromClassLoader();
17+
this.pack = new CachedPackage("java.lang", source);
18+
}
19+
20+
@Test
21+
public void testGetPackageClass() {
22+
Optional<Class<?>> result = pack.getPackageClass("Object");
23+
assertTrue(result.isPresent());
24+
assertEquals(result.get(), Object.class);
25+
}
26+
27+
@Test
28+
public void testUsingAliases() {
29+
Optional<Class<?>> result = pack.getPackageClass("NOT_A_CLASS", "Object");
30+
assertTrue(result.isPresent());
31+
assertEquals(result.get(), Object.class);
32+
33+
result = pack.getPackageClass("NOT_A_CLASS", "STILL_NOT_A_CLASS", "Object");
34+
assertTrue(result.isPresent());
35+
assertEquals(result.get(), Object.class);
36+
}
37+
}

0 commit comments

Comments
 (0)