Applied patch for FELIX-3075
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1157032 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedService.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedService.java
index dce476c..6476583 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedService.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedService.java
@@ -732,21 +732,13 @@
public void setValue(Boolean value) {
synchronized (ProvidedService.this) {
if (value.booleanValue() != m_value) {
+ // If there is a change to the ServiceController value then
+ // we will
+ // need to modify the registrations.
m_value = value.booleanValue();
- if (m_value) {
- if (m_serviceRegistration == null) {
- registerService();
- }
- // Already registered.
- } else {
- // If we are still some specification valid, register those one
- if (getServiceSpecificationsToRegister().length != 0) {
- unregisterService();
- registerService();
- } else {
- // If not, then unregister all
- unregisterService();
- }
+ unregisterService();
+ if (getServiceSpecificationsToRegister().length != 0) {
+ registerService();
}
}
}