Author: dkulp
Date: Wed Sep  7 15:28:20 2011
New Revision: 1166226

URL: http://svn.apache.org/viewvc?rev=1166226&view=rev
Log:
When running in OSGi, you could create a non-osgi associated bus.
Don't NPE in that case.

Modified:
    
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/osgi/OSGiExtensionLocator.java

Modified: 
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/osgi/OSGiExtensionLocator.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/osgi/OSGiExtensionLocator.java?rev=1166226&r1=1166225&r2=1166226&view=diff
==============================================================================
--- 
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/osgi/OSGiExtensionLocator.java
 (original)
+++ 
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/osgi/OSGiExtensionLocator.java
 Wed Sep  7 15:28:20 2011
@@ -142,7 +142,6 @@ public class OSGiExtensionLocator implem
         public static final String CONTEXT_NAME_PROPERTY = "cxf.bus.id";
         
         Bus bus;
-        BundleContext context;
         ServiceRegistration service;
  
         public OSGIBusListener(Bus b) {
@@ -156,19 +155,23 @@ public class OSGiExtensionLocator implem
         }
  
         public void initComplete() {
-            context = bus.getExtension(BundleContext.class);
-            Properties props = new Properties();
-            props.put(CONTEXT_SYMBOLIC_NAME_PROPERTY, 
context.getBundle().getSymbolicName());
-            props.put(CONTEXT_VERSION_PROPERTY, 
getBundleVersion(context.getBundle()));
-            props.put(CONTEXT_NAME_PROPERTY, bus.getId());
-
-            service = context.registerService(Bus.class.getName(), bus, props);
+            BundleContext context = bus.getExtension(BundleContext.class);
+            if (context != null) {
+                Properties props = new Properties();
+                props.put(CONTEXT_SYMBOLIC_NAME_PROPERTY, 
context.getBundle().getSymbolicName());
+                props.put(CONTEXT_VERSION_PROPERTY, 
getBundleVersion(context.getBundle()));
+                props.put(CONTEXT_NAME_PROPERTY, bus.getId());
+    
+                service = context.registerService(Bus.class.getName(), bus, 
props);
+            }
         }
         public void preShutdown() {
         }
         public void postShutdown() {
-            service.unregister();
-            service = null;
+            if (service != null) {
+                service.unregister();
+                service = null;
+            }
         }
     }
     


Reply via email to