Author: rmannibucau
Date: Thu Dec 22 15:37:23 2011
New Revision: 1222283

URL: http://svn.apache.org/viewvc?rev=1222283&view=rev
Log:
simply logging NPE when bundleevent.updated is sent and the OSGi container is 
shutting down

Modified:
    
openejb/trunk/openejb/container/openejb-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java

Modified: 
openejb/trunk/openejb/container/openejb-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java?rev=1222283&r1=1222282&r2=1222283&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java
 Thu Dec 22 15:37:23 2011
@@ -79,7 +79,13 @@ public class Deployer implements BundleL
                 undeploy(event.getBundle());
                 break;
             case BundleEvent.UPDATED:
-                undeploy(event.getBundle());
+                try {
+                    undeploy(event.getBundle());
+                } catch (NullPointerException npe) {
+                    // can happen when shutting down an OSGi server
+                    // because of all stop events
+                    LOGGER.warn("can't undeploy bundle #{}", 
event.getBundle().getBundleId());
+                }
                 deploy(event.getBundle());
                 break;
         }
@@ -168,7 +174,10 @@ public class Deployer implements BundleL
 
         if (paths.containsKey(bundle)) {
             try {
-                
SystemInstance.get().getComponent(Assembler.class).destroyApplication(paths.remove(bundle));
+                Assembler assembler = 
SystemInstance.get().getComponent(Assembler.class);
+                if (assembler != null) { // openejb stopped before bundles 
when shuttind down the OSGi container
+                    assembler.destroyApplication(paths.remove(bundle));
+                }
             } catch (IllegalStateException ise) {
                 LOGGER.error("Can't undeploy bundle #{}", 
bundle.getBundleId());
             } catch (UndeployException e) {


Reply via email to