You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2009/02/26 14:05:27 UTC

svn commit: r748127 - /servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/impl/AssemblyReferencesListener.java

Author: gnodet
Date: Thu Feb 26 13:05:27 2009
New Revision: 748127

URL: http://svn.apache.org/viewvc?rev=748127&view=rev
Log:
SMX4NMR-70: fix possible NPE

Modified:
    servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/impl/AssemblyReferencesListener.java

Modified: servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/impl/AssemblyReferencesListener.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/impl/AssemblyReferencesListener.java?rev=748127&r1=748126&r2=748127&view=diff
==============================================================================
--- servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/impl/AssemblyReferencesListener.java (original)
+++ servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/impl/AssemblyReferencesListener.java Thu Feb 26 13:05:27 2009
@@ -85,7 +85,7 @@
             if (exchange instanceof InternalExchange) {
                 // Increment reference to the source SA
                 InternalExchange ie = (InternalExchange) exchange;
-                reference(endpoints.get(ie.getSource()));
+                reference(ie.getSource());
             }
         }
     }
@@ -96,8 +96,8 @@
             if (exchange instanceof InternalExchange) {
                 InternalExchange ie = (InternalExchange) exchange;
                 // Decrement references to source and destination SA
-                unreference(endpoints.get(ie.getSource()));
-                unreference(endpoints.get(ie.getDestination()));
+                unreference(ie.getSource());
+                unreference(ie.getDestination());
             }
             // Check if this is a new exchange
         } else if (exchange.getStatus() == Status.Active && exchange.getRole() == Role.Provider &&
@@ -105,7 +105,7 @@
             if (exchange instanceof InternalExchange) {
                 // Increment reference to the destination SA
                 InternalExchange ie = (InternalExchange) exchange;
-                reference(endpoints.get(ie.getDestination()));
+                reference(ie.getDestination());
             }
         }
     }
@@ -114,8 +114,8 @@
         if (exchange instanceof InternalExchange) {
             InternalExchange ie = (InternalExchange) exchange;
             // Decrement references to source and destination SA
-            unreference(endpoints.get(ie.getSource()));
-            unreference(endpoints.get(ie.getDestination()));
+            unreference(ie.getSource());
+            unreference(ie.getDestination());
         }
     }
 
@@ -134,6 +134,18 @@
         }
     }
 
+    private void reference(InternalEndpoint endpoint) {
+        if (endpoint != null) {
+            reference(endpoints.get(endpoint));
+        }
+    }
+
+    private void unreference(InternalEndpoint endpoint) {
+        if (endpoint != null) {
+            unreference(endpoints.get(endpoint));
+        }
+    }
+
     private void reference(ServiceAssembly assembly) {
         if (assembly != null) {
             AtomicInteger count = references.get(assembly);