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;