Finally figured out why I couldn’t get this third-party library to load its config!
Had to debug through a decompiled class…
It’s checking whether optional parameters are empty using foo.equalsIgnoreCase("")
BEFORE checking whether foo != null.
So loading the config throws an NPE every time it tries to load the config. And it silently catches the exception, leaving the config object empty.
Easy enough to workaround, but a dumb error that was a pain to find.