Trying better ReflectRegistry initialization
This commit is contained in:
parent
e21b2ffe67
commit
bf21151856
@ -3,6 +3,8 @@ package fr.pandacube.lib.paper.reflect;
|
|||||||
import static fr.pandacube.lib.core.util.ThrowableUtil.wrapEx;
|
import static fr.pandacube.lib.core.util.ThrowableUtil.wrapEx;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.lang.reflect.Modifier;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@ -474,14 +476,18 @@ public class ReflectRegistry {
|
|||||||
|
|
||||||
private static void initRecursively(Class<?> cl) {
|
private static void initRecursively(Class<?> cl) {
|
||||||
try {
|
try {
|
||||||
Class.forName(cl.getName()); // force initializing the member classes
|
Log.info("Init reflect registry class " + cl + "...");
|
||||||
|
for (Field f : Reflect.ofClass(cl).get().getDeclaredFields()) {
|
||||||
|
if (Modifier.isStatic(f.getModifiers()))
|
||||||
|
f.get(null);
|
||||||
|
}
|
||||||
} catch (ExceptionInInitializerError e) {
|
} catch (ExceptionInInitializerError e) {
|
||||||
Log.severe("Error while initilizing a ReflectRegistry entry at " + cl.getName(), e.getCause());
|
Log.severe("Error while initilizing a ReflectRegistry entry at " + cl.getName(), e.getCause());
|
||||||
} catch (NoClassDefFoundError e) {
|
} catch (NoClassDefFoundError e) {
|
||||||
// if a previously initialized class failed to actually initialize
|
// if a previously initialized class failed to actually initialize
|
||||||
Log.severe("Error while initilizing a ReflectRegistry entry at " + cl.getName() + " due to a previously failed initialization (" + e.getMessage() + ")");
|
Log.severe("Error while initilizing a ReflectRegistry entry at " + cl.getName() + " due to a previously failed initialization (" + e.getMessage() + ")");
|
||||||
} catch (ClassNotFoundException e) {
|
} catch (Throwable t) {
|
||||||
Log.severe("Wut? (should not append)", e);
|
Log.severe("Wut?", t);
|
||||||
}
|
}
|
||||||
for (Class<?> declaredClass : cl.getDeclaredClasses()) {
|
for (Class<?> declaredClass : cl.getDeclaredClasses()) {
|
||||||
initRecursively(declaredClass);
|
initRecursively(declaredClass);
|
||||||
|
Loading…
Reference in New Issue
Block a user