diff --git a/framework/src/main/java/org/apache/felix/framework/Felix.java b/framework/src/main/java/org/apache/felix/framework/Felix.java
index c640a75..b13ee23 100644
--- a/framework/src/main/java/org/apache/felix/framework/Felix.java
+++ b/framework/src/main/java/org/apache/felix/framework/Felix.java
@@ -541,7 +541,7 @@
 
             List result = new ArrayList();
 
-            for (int i = 0;i < refs.length;i++)
+            for (int i = 0; i < refs.length; i++)
             {
                 String[] objectClass = (String[]) refs[i].getProperty(
                     Constants.OBJECTCLASS);
@@ -551,7 +551,7 @@
                     continue;
                 }
 
-                for (int j = 0;j < objectClass.length;j++)
+                for (int j = 0; j < objectClass.length; j++)
                 {
                     try
                     {
@@ -597,7 +597,7 @@
 
             List result = new ArrayList();
 
-            for (int i = 0;i < refs.length;i++)
+            for (int i = 0; i < refs.length; i++)
             {
                 String[] objectClass = (String[]) refs[i].getProperty(
                     Constants.OBJECTCLASS);
@@ -607,7 +607,7 @@
                     continue;
                 }
 
-                for (int j = 0;j < objectClass.length;j++)
+                for (int j = 0; j < objectClass.length; j++)
                 {
                     try
                     {
@@ -2833,7 +2833,7 @@
 
         List result = new ArrayList();
 
-        for (int i = 0;i < refs.length;i++)
+        for (int i = 0; i < refs.length; i++)
         {
             String[] objectClass = (String[]) refs[i].getProperty(Constants.OBJECTCLASS);
 
