Author: marrs
Date: Fri Jan 21 20:38:55 2011
New Revision: 1062015

URL: http://svn.apache.org/viewvc?rev=1062015&view=rev
Log:
Fixed a potential NPE that seemed to occur under specific circumstances when 
the component was stopped.

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

Modified: 
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ComponentImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ComponentImpl.java?rev=1062015&r1=1062014&r2=1062015&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ComponentImpl.java
 (original)
+++ 
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ComponentImpl.java
 Fri Jan 21 20:38:55 2011
@@ -397,9 +397,9 @@ public class ComponentImpl implements Co
     public synchronized void start() {
        if (m_serviceRegistration == null) {
                m_serviceRegistration = 
m_context.registerService(ComponentDeclaration.class.getName(), this, null);
-               State oldState, newState;
+               State oldState, newState;
                synchronized (m_dependencies) {
-                       oldState = m_state;
+                   oldState = m_state;
                    newState = new State((List) m_dependencies.clone(), true, 
m_isInstantiated, m_isBound);
                    m_state = newState;
                }
@@ -409,15 +409,15 @@ public class ComponentImpl implements Co
 
     public synchronized void stop() {
        if (m_serviceRegistration != null) {
-               State oldState, newState;
+               m_serviceRegistration.unregister();
+               m_serviceRegistration = null;
+               State oldState, newState;
                synchronized (m_dependencies) {
-                       oldState = m_state;
+                   oldState = m_state;
                    newState = new State((List) m_dependencies.clone(), false, 
m_isInstantiated, m_isBound);
                    m_state = newState;
                }
                calculateStateChanges(oldState, newState);
-               m_serviceRegistration.unregister();
-               m_serviceRegistration = null;
        }
     }
 


Reply via email to