FELIX-6181 : Unget services in connector factory tracker

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1866827 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/ConnectorFactoryTracker.java b/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/ConnectorFactoryTracker.java
index ab869b7..559b298 100644
--- a/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/ConnectorFactoryTracker.java
+++ b/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/ConnectorFactoryTracker.java
@@ -50,20 +50,20 @@
     @Override
     public Connector addingService(ServiceReference<ConnectorFactory> reference)
     {
-        ConnectorFactory factory = (ConnectorFactory) super.addingService(reference);
-        Connector connector = factory.createConnector(server);
-        try
-        {
-            this.server.addConnector(connector);
-            connector.start();
-            return connector;
+        ConnectorFactory factory = context.getService(reference);
+        if (factory != null) {
+            Connector connector = null;
+            try {
+                connector = factory.createConnector(server);
+                this.server.addConnector(connector);
+                connector.start();
+                return connector;
+            } catch (Exception e) {
+                SystemLogger.error("Failed starting connector '" + connector + "' provided by " + reference, e);
+            }
+            // connector failed to start, don't continue tracking
+            context.ungetService(reference);
         }
-        catch (Exception e)
-        {
-            SystemLogger.error("Failed starting connector '" + connector + "' provided by " + reference, e);
-        }
-
-        // connector failed to start, don't continue tracking
         return null;
     }
 
@@ -83,5 +83,6 @@
             }
         }
         this.server.removeConnector(connector);
+        context.ungetService(reference);
     }
 }