use class classloader if it has not been loaded by system classloader Signed-off-by: Lukas Jungmann <lukas.jungmann@oracle.com>
diff --git a/jaxb-api/src/main/java/jakarta/xml/bind/ContextFinder.java b/jaxb-api/src/main/java/jakarta/xml/bind/ContextFinder.java index 8f898bf..6c01465 100644 --- a/jaxb-api/src/main/java/jakarta/xml/bind/ContextFinder.java +++ b/jaxb-api/src/main/java/jakarta/xml/bind/ContextFinder.java
@@ -382,10 +382,15 @@ } // to ensure backwards compatibility + ClassLoader loader = getContextClassLoader(); // it is guaranteed classes are not null but it is not guaranteed, that array is not empty - ClassLoader loader = classes.length > 0 - ? getClassClassLoader(classes[0]) - : getContextClassLoader(); + if (classes.length > 0) { + ClassLoader c = getClassClassLoader(classes[0]); + //switch to classloader which loaded the class if it is not a bootstrap cl + if (c != null) { + loader = c; + } + } String className = firstByServiceLoaderDeprecated(JAXBContext.class, loader); if (className != null) return newInstance(classes, properties, className, loader);