Fixed a potential NPE that seemed to occur under specific circumstances when the component was stopped.

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1062015 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ComponentImpl.java b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ComponentImpl.java
index d4a39a4..d368216 100644
--- a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ComponentImpl.java
+++ b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ComponentImpl.java
@@ -397,9 +397,9 @@
     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 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;
     	}
     }