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"));