Turns out this was a simple one - due to the nature of how ClassLoader.registerAsParallelCapable works, it does not check for child classes, and so DelegatedClassLoader must also be registered.
This required me to make it a static nested class rather than an inner class, as otherwise there is no way to use a static initializer inside the class, and the method is caller sensitive (seriously, wtf is this API? just have a version that accepts a Class<?>).
Turns out this was a simple one - due to the nature of how
ClassLoader.registerAsParallelCapable
works, it does not check for child classes, and soDelegatedClassLoader
must also be registered.This required me to make it a static nested class rather than an inner class, as otherwise there is no way to use a static initializer inside the class, and the method is caller sensitive (seriously, wtf is this API? just have a version that accepts a
Class<?>
).