PDFBOX-4671: prefer a provided classloader to lookup classes
diff --git a/src/main/java/org/apache/pdfbox/jbig2/util/ServiceLookup.java b/src/main/java/org/apache/pdfbox/jbig2/util/ServiceLookup.java
index 35852fa..5a8b4f9 100644
--- a/src/main/java/org/apache/pdfbox/jbig2/util/ServiceLookup.java
+++ b/src/main/java/org/apache/pdfbox/jbig2/util/ServiceLookup.java
@@ -30,18 +30,19 @@
public Iterator<B> getServices(Class<B> cls, ClassLoader clsLoader)
{
- Iterator<B> services = ServiceLoader.load(cls).iterator();
-
- if (!services.hasNext())
- {
- services = ServiceLoader.load(cls, cls.getClass().getClassLoader()).iterator();
- }
-
- if (!services.hasNext() && clsLoader != null)
+ Iterator<B> services = null;
+ if (clsLoader != null)
{
services = ServiceLoader.load(cls, clsLoader).iterator();
}
-
+ if (services == null || !services.hasNext())
+ {
+ services = ServiceLoader.load(cls, cls.getClass().getClassLoader()).iterator();
+ }
+ if (services == null || !services.hasNext())
+ {
+ services = ServiceLoader.load(cls).iterator();
+ }
return services;
}