Fixed FELIX-3426 UPnP Plugin device tracking is error-prone
https://issues.apache.org/jira/browse/FELIX-3426

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1309002 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/webconsole-plugins/upnp/src/main/java/org/apache/felix/webconsole/plugins/upnp/internal/Activator.java b/webconsole-plugins/upnp/src/main/java/org/apache/felix/webconsole/plugins/upnp/internal/Activator.java
index 059ad4f..81e3145 100644
--- a/webconsole-plugins/upnp/src/main/java/org/apache/felix/webconsole/plugins/upnp/internal/Activator.java
+++ b/webconsole-plugins/upnp/src/main/java/org/apache/felix/webconsole/plugins/upnp/internal/Activator.java
@@ -69,7 +69,7 @@
     /**

      * @see org.osgi.util.tracker.ServiceTrackerCustomizer#addingService(org.osgi.framework.ServiceReference)

      */

-    public final Object addingService(ServiceReference reference)

+    public final synchronized Object addingService(ServiceReference reference)

     {

         SimpleWebConsolePlugin plugin = this.plugin;

         if (plugin == null)

@@ -88,7 +88,7 @@
      * @see org.osgi.util.tracker.ServiceTrackerCustomizer#removedService(org.osgi.framework.ServiceReference,

      *      java.lang.Object)

      */

-    public final void removedService(ServiceReference reference, Object service)

+    public final synchronized void removedService(ServiceReference reference, Object service)

     {

         SimpleWebConsolePlugin plugin = this.plugin;

 

@@ -99,7 +99,7 @@
                 controller.removedService(reference, service);

         }

 

-        if (tracker.getTrackingCount() == 0 && plugin != null)

+        if (tracker.size() == 0 && plugin != null)

         {

             plugin.unregister();

             this.plugin = null;