Author: rmannibucau
Date: Thu Nov 24 18:17:06 2011
New Revision: 1205946

URL: http://svn.apache.org/viewvc?rev=1205946&view=rev
Log:
osgi bundle.findEntries can return null, avoid the NPE which can happen

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=1205946&r1=1205945&r2=1205946&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 Nov 24 18:17:06 2011
@@ -16,11 +16,6 @@
  */
 package org.apache.openejb.core.osgi.impl;
 
-import java.io.File;
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.Properties;
-
 import org.apache.openejb.assembler.classic.AppInfo;
 import org.apache.openejb.assembler.classic.Assembler;
 import org.apache.openejb.assembler.classic.EjbJarInfo;
@@ -34,6 +29,11 @@ import org.osgi.framework.BundleContext;
 import org.osgi.framework.BundleEvent;
 import org.osgi.framework.BundleListener;
 
+import java.io.File;
+import java.net.URL;
+import java.util.Enumeration;
+import java.util.Properties;
+
 /**
  * @version $Rev$ $Date$
  */
@@ -54,9 +54,9 @@ public class Deployer implements BundleL
         System.out.println(String.format("[Deployer] Bundle %s has been 
started", bundle.getSymbolicName()));
 
         System.out.println(String.format("[Deployer] Checking whether it's an 
EJB module"));
-        Enumeration<?> e = bundle.findEntries("META-INF", "ejb-jar.xml", 
false);
-        if (e.hasMoreElements()) {
-            URL ejbJarUrl = (URL) e.nextElement();
+        Enumeration<URL> e = bundle.findEntries("META-INF", "ejb-jar.xml", 
false);
+        if (e != null && e.hasMoreElements()) {
+            URL ejbJarUrl = e.nextElement();
 
             System.out.println("[Deployer] It's an EJB module: " + ejbJarUrl);
 
@@ -73,7 +73,7 @@ public class Deployer implements BundleL
                     ConfigurationFactory configurationFactory = new 
ConfigurationFactory();
                     AppInfo appInfo = 
configurationFactory.configureApplication(appModule);
 
-                    Assembler assembler = (Assembler) 
SystemInstance.get().getComponent(Assembler.class);
+                    Assembler assembler = 
SystemInstance.get().getComponent(Assembler.class);
                     System.out.println(assembler);
                     System.out.println(appInfo);
                     assembler.createApplication(appInfo);
@@ -115,7 +115,7 @@ public class Deployer implements BundleL
         for (EjbJarInfo ejbJarInfo : appInfo.ejbJars) {
             for (EnterpriseBeanInfo ejbInfo : ejbJarInfo.enterpriseBeans) {
                 try {
-                    context.registerService(ejbInfo.businessRemote.toArray(new 
String[0]), bundle.loadClass(
+                    context.registerService(ejbInfo.businessRemote.toArray(new 
String[ejbInfo.businessRemote.size()]), bundle.loadClass(
                             ejbInfo.ejbClass).newInstance(), new Properties());
                     System.out.println(String.format(
                             "[Deployer] Service object %s registered under the 
class names: %s", ejbInfo.ejbClass,


Reply via email to