1.) I would accept the same.
2.a (multiple classloaders): application containers like JBoss have special classloaders. They serve to separate classes in different applications. You should be able to use any version of the class in your application, regardless of the version used in another application.
Therefore, two classes are considered different if they have the same name but different class loaders.
Problems arise when two applications receive a βcontactβ or where classes are provided by the container. I would suggest that the problem is that Guava is provided by WebLogic.
In addition, Jenkins is a kind of application container, it must share different plugins, therefore AntClassLoader2.
2b (Class division): Usually it's just the opposite: always ask the parent class loader, if he cannot find the class, try to find it yourself. But the whole story is much more complicated (to get an idea, see https://tomcat.apache.org/tomcat-8.0-doc/class-loader-howto.html , maybe there is other similar documentation for WebLogic).
3) As a first premise, I would like to check if WebLogic (as your instance) supports Guava.
4) I would try to isolate the problem and make it reproducible by writing a small webapp that uses the Provider. Perhaps I would search and read the documentation on how class loading is handled in WebLogic.
source share