SLING-7550 Return services even when class param is null in
MockBundleContext.getServiceReferences api
diff --git a/src/main/java/org/apache/sling/testing/mock/osgi/MockServiceRegistration.java b/src/main/java/org/apache/sling/testing/mock/osgi/MockServiceRegistration.java
index 7a2e87d..095d3dc 100644
--- a/src/main/java/org/apache/sling/testing/mock/osgi/MockServiceRegistration.java
+++ b/src/main/java/org/apache/sling/testing/mock/osgi/MockServiceRegistration.java
@@ -93,7 +93,7 @@
 
     boolean matches(final String clazz, final String filter) throws InvalidSyntaxException {
         // ignore filter for now
-        return this.clazzes.contains(clazz)
+        return (clazz == null || this.clazzes.contains(clazz))
                 && (filter == null || new FilterImpl(filter).match(properties));
     }
     
diff --git a/src/test/java/org/apache/sling/testing/mock/osgi/MockBundleContextTest.java b/src/test/java/org/apache/sling/testing/mock/osgi/MockBundleContextTest.java
index 1760ced..e031f72 100644
--- a/src/test/java/org/apache/sling/testing/mock/osgi/MockBundleContextTest.java
+++ b/src/test/java/org/apache/sling/testing/mock/osgi/MockBundleContextTest.java
@@ -297,6 +297,18 @@
         
         bundleContext.ungetService(ref);
     }
+    
+    @Test
+    public void testGetServicesWithNoClassOnlyFilter() throws InvalidSyntaxException {
+        bundleContext.registerService(String.class, "service1", testProperty());
+        bundleContext.registerService(Long.class, new Long(2), testProperty());
+        bundleContext.registerService(Integer.class, new Integer(9), testProperty());
+        
+        // should return service with lowest service id = which was registered first
+        ServiceReference[] refs = bundleContext.getServiceReferences((String)null, "(prop1=value1)");
+        assertNotNull(refs);
+        assertEquals(3, refs.length);
+    }
 
     private static Dictionary<String, Object> ranking(final Integer serviceRanking) {
         Dictionary<String, Object> props = new Hashtable<String, Object>();
@@ -305,5 +317,11 @@
         }
         return props;
     }
+    
+    private static Dictionary<String, Object> testProperty() {
+        Dictionary<String, Object> props = new Hashtable<String, Object>();
+        props.put("prop1", "value1");
+        return props;
+    }
 
 }