You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2011/12/22 16:37:23 UTC

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

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) {