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 2012/03/07 23:46:42 UTC

svn commit: r1298185 - in /openejb/trunk/openejb/container/openejb-core/src: main/java/org/apache/openejb/assembler/classic/ main/java/org/apache/openejb/config/ test/java/org/apache/openejb/config/

Author: rmannibucau
Date: Wed Mar  7 22:46:41 2012
New Revision: 1298185

URL: http://svn.apache.org/viewvc?rev=1298185&view=rev
Log:
avoiding NPE in MBeanDeployer

Modified:
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/MBeanDeployer.java
    openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/MBeanDeployerTest.java

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java?rev=1298185&r1=1298184&r2=1298185&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AppInfo.java Wed Mar  7 22:46:41 2012
@@ -18,9 +18,8 @@ package org.apache.openejb.assembler.cla
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
+import java.util.Properties;
 import java.util.Set;
-import java.util.TreeMap;
 import java.util.TreeSet;
 
 /**
@@ -41,6 +40,6 @@ public class AppInfo extends InfoObject 
     public final JndiEncInfo globalJndiEnc = new JndiEncInfo();
     public final JndiEncInfo appJndiEnc = new JndiEncInfo();
     public String cmpMappingsXml;
-    public Map<String, String> jmx = new TreeMap<String, String>();
-    public Set<String> mbeans = new TreeSet<String>();
+    public final Properties jmx = new Properties();
+    public final Set<String> mbeans = new TreeSet<String>();
 }

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1298185&r1=1298184&r2=1298185&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Wed Mar  7 22:46:41 2012
@@ -909,7 +909,7 @@ public class Assembler extends Assembler
         }
     }
 
-    private static void deployMBean(final BeanManager bm, final ClassLoader cl, final String mbeanClass, final Map<String, String> appMbeans, final String id) {
+    private static void deployMBean(final BeanManager bm, final ClassLoader cl, final String mbeanClass, final Properties appMbeans, final String id) {
         final Class<?> clazz;
         try {
             clazz = cl.loadClass(mbeanClass);
@@ -1291,9 +1291,9 @@ public class Assembler extends Assembler
 
         // mbeans
         MBeanServer server = LocalMBeanServer.get();
-        for (String objectName : appInfo.jmx.values()) {
+        for (Object objectName : appInfo.jmx.values()) {
             try {
-              ObjectName on = new ObjectName(objectName);
+              ObjectName on = new ObjectName((String) objectName);
               if (server.isRegistered(on)) {
                       server.unregisterMBean(on);
               }

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java?rev=1298185&r1=1298184&r2=1298185&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java Wed Mar  7 22:46:41 2012
@@ -102,7 +102,7 @@ class AppInfoBuilder {
         appInfo.path = appModule.getJarLocation();
         appInfo.standaloneModule = appModule.isStandaloneModule();
         appInfo.watchedResources.addAll(appModule.getWatchedResources());
-        appInfo.mbeans = appModule.getAdditionalLibMbeans();
+        appInfo.mbeans.addAll(appModule.getAdditionalLibMbeans());
 
         if (appInfo.appId == null) throw new IllegalArgumentException("AppInfo.appId cannot be null");
         if (appInfo.path == null) appInfo.path = appInfo.appId;

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/MBeanDeployer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/MBeanDeployer.java?rev=1298185&r1=1298184&r2=1298185&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/MBeanDeployer.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/MBeanDeployer.java Wed Mar  7 22:46:41 2012
@@ -43,6 +43,10 @@ public class MBeanDeployer implements Dy
         // there is an ejbmodule by webapp so we should't need to go through the webapp
 
         for (EjbModule ejbModule : appModule.getEjbModules()) {
+            if (ejbModule.getFinder() == null) {
+                continue;
+            }
+
             for (Annotated<Class<?>> clazz : ejbModule.getFinder().findMetaAnnotatedClasses(MBean.class)) {
                 final Class<?> realClass = clazz.get();
                 final String name = clazz.get().getName();
@@ -55,6 +59,10 @@ public class MBeanDeployer implements Dy
             }
         }
         for (ClientModule clientModule : appModule.getClientModules()) {
+            if (clientModule.getFinder() == null) {
+                continue;
+            }
+
             for (Annotated<Class<?>> clazz : clientModule.getFinder().findMetaAnnotatedClasses(MBean.class)) {
                 final String name = clazz.get().getName();
                 if (done.contains(name)) {

Modified: openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/MBeanDeployerTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/MBeanDeployerTest.java?rev=1298185&r1=1298184&r2=1298185&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/MBeanDeployerTest.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/MBeanDeployerTest.java Wed Mar  7 22:46:41 2012
@@ -90,8 +90,8 @@ public class MBeanDeployerTest {
     @Test
     public void mbeans() throws Exception {
         final Set<String> parsed = new HashSet<String>();
-        for (String name : appInfo.jmx.values()) {
-            final ObjectName on = new ObjectName(name);
+        for (Object name : appInfo.jmx.values()) {
+            final ObjectName on = new ObjectName((String) name);
             final String cn = on.getCanonicalName();
             if (cn.contains("name=Empty")) {
                 assertTrue(cn.startsWith("openejb.user.mbeans"));