Author: uiterlix
Date: Fri Apr 20 13:07:07 2012
New Revision: 1328364

URL: http://svn.apache.org/viewvc?rev=1328364&view=rev
Log:
Fixed bug in swapped callback of AbstractDecorator. Instead of really swapping 
it re-added the old service instead of the new one.

Modified:
    
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/AbstractDecorator.java

Modified: 
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/AbstractDecorator.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/AbstractDecorator.java?rev=1328364&r1=1328363&r2=1328364&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/AbstractDecorator.java
 (original)
+++ 
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/AbstractDecorator.java
 Fri Apr 20 13:07:07 2012
@@ -221,7 +221,11 @@ public abstract class AbstractDecorator 
     public void swapped(ServiceReference oldRef, Object oldService, 
ServiceReference newRef, Object newService) {
         synchronized (m_services) {
                Component service = (Component) m_services.remove(oldRef);
-               m_services.put(newRef, service);
+            if (service == null) {
+                throw new IllegalStateException("Service should not be null 
here.");
+            }
+               Component newComponent = createService(new Object[] { newRef, 
newService });
+               m_services.put(newRef, newComponent);
         }
     }
     


Reply via email to