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;
     }