[jboss-cvs] JBossAS SVN: r99444 - in projects/jbossmx/trunk/mbeans/src/main/org/jboss/mx: server and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Jan 15 01:04:56 EST 2010
Author: adrian at jboss.org
Date: 2010-01-15 01:04:56 -0500 (Fri, 15 Jan 2010)
New Revision: 99444
Modified:
projects/jbossmx/trunk/mbeans/src/main/org/jboss/mx/modelmbean/ModelMBeanInvoker.java
projects/jbossmx/trunk/mbeans/src/main/org/jboss/mx/server/AbstractMBeanInvoker.java
projects/jbossmx/trunk/mbeans/src/main/org/jboss/mx/server/RawDynamicInvoker.java
Log:
[JBMX-16] - Fix NPEs for XMBean using Sun JDK
Modified: projects/jbossmx/trunk/mbeans/src/main/org/jboss/mx/modelmbean/ModelMBeanInvoker.java
===================================================================
--- projects/jbossmx/trunk/mbeans/src/main/org/jboss/mx/modelmbean/ModelMBeanInvoker.java 2010-01-15 06:03:01 UTC (rev 99443)
+++ projects/jbossmx/trunk/mbeans/src/main/org/jboss/mx/modelmbean/ModelMBeanInvoker.java 2010-01-15 06:04:56 UTC (rev 99444)
@@ -214,7 +214,7 @@
{
try
{
- this.init(getServer(), resourceEntry.getObjectName());
+ this.init(getServer(), getObjectName());
}
catch(Exception e)
{
Modified: projects/jbossmx/trunk/mbeans/src/main/org/jboss/mx/server/AbstractMBeanInvoker.java
===================================================================
--- projects/jbossmx/trunk/mbeans/src/main/org/jboss/mx/server/AbstractMBeanInvoker.java 2010-01-15 06:03:01 UTC (rev 99443)
+++ projects/jbossmx/trunk/mbeans/src/main/org/jboss/mx/server/AbstractMBeanInvoker.java 2010-01-15 06:04:56 UTC (rev 99444)
@@ -122,10 +122,14 @@
/**
* The MBeanServer passed in to preRegister
*/
-
private MBeanServer server;
/**
+ * Our registered object name
+ */
+ private ObjectName objectName;
+
+ /**
* Set the MBeanEntry thread local value.
* @param entry - the entry that will be used on successful registration
*/
@@ -252,7 +256,7 @@
override(invocation);
- ClassLoader mbeanTCL = resourceEntry.getClassLoader();
+ ClassLoader mbeanTCL = resourceEntry == null ? null : resourceEntry.getClassLoader();
final ClassLoader ccl = TCLAction.UTIL.getContextClassLoader();
boolean setCl = ccl != mbeanTCL && mbeanTCL != null;
if (setCl)
@@ -352,7 +356,7 @@
override(invocation);
- ClassLoader mbeanTCL = resourceEntry.getClassLoader();
+ ClassLoader mbeanTCL = resourceEntry == null ? null : resourceEntry.getClassLoader();
final ClassLoader ccl = TCLAction.UTIL.getContextClassLoader();
boolean setCl = ccl != mbeanTCL && mbeanTCL != null;
if (setCl)
@@ -449,7 +453,7 @@
override(invocation);
- ClassLoader mbeanTCL = resourceEntry.getClassLoader();
+ ClassLoader mbeanTCL = resourceEntry == null ? null : resourceEntry.getClassLoader();
final ClassLoader ccl = TCLAction.UTIL.getContextClassLoader();
boolean setCl = ccl != mbeanTCL && mbeanTCL != null;
if (setCl)
@@ -508,6 +512,10 @@
public MBeanInfo getMBeanInfo()
{
+ // Sun's JDK calls getMBeanInfo before preRegister
+ if (getMBeanInfoCtx == null)
+ return info;
+
// create the invocation object
Invocation invocation = new Invocation(getMBeanInfoCtx);
@@ -516,7 +524,7 @@
if (resourceEntry == null)
resourceEntry = getMBeanEntry();
- ClassLoader mbeanTCL = resourceEntry.getClassLoader();
+ ClassLoader mbeanTCL = resourceEntry == null ? null : resourceEntry.getClassLoader();
final ClassLoader ccl = TCLAction.UTIL.getContextClassLoader();
boolean setCl = ccl != mbeanTCL && mbeanTCL != null;
if (setCl)
@@ -637,7 +645,7 @@
}
- ClassLoader mbeanTCL = resourceEntry.getClassLoader();
+ ClassLoader mbeanTCL = resourceEntry == null ? null : resourceEntry.getClassLoader();
final ClassLoader ccl = TCLAction.UTIL.getContextClassLoader();
boolean setCl = ccl != mbeanTCL && mbeanTCL != null;
if (setCl)
@@ -674,6 +682,7 @@
TCLAction.UTIL.setContextClassLoader(ccl);
}
}
+ this.objectName = mbeanName;
return mbeanName;
}
@@ -697,6 +706,7 @@
{
invokePostDeregister();
this.server = null;
+ this.objectName = null;
}
@@ -823,7 +833,7 @@
public ObjectName getObjectName()
{
if (resourceEntry == null)
- return null;
+ return objectName;
else
return resourceEntry.getObjectName();
}
Modified: projects/jbossmx/trunk/mbeans/src/main/org/jboss/mx/server/RawDynamicInvoker.java
===================================================================
--- projects/jbossmx/trunk/mbeans/src/main/org/jboss/mx/server/RawDynamicInvoker.java 2010-01-15 06:03:01 UTC (rev 99443)
+++ projects/jbossmx/trunk/mbeans/src/main/org/jboss/mx/server/RawDynamicInvoker.java 2010-01-15 06:04:56 UTC (rev 99444)
@@ -104,7 +104,7 @@
public Object getAttribute(String name) throws AttributeNotFoundException,
MBeanException, ReflectionException
{
- ClassLoader mbeanTCL = resourceEntry.getClassLoader();
+ ClassLoader mbeanTCL = resourceEntry == null ? null : resourceEntry.getClassLoader();
final ClassLoader ccl = TCLAction.UTIL.getContextClassLoader();
boolean setCl = ccl != mbeanTCL && mbeanTCL != null;
if(setCl)
@@ -127,7 +127,7 @@
public AttributeList getAttributes(String[] attributes)
{
- ClassLoader mbeanTCL = resourceEntry.getClassLoader();
+ ClassLoader mbeanTCL = resourceEntry == null ? null : resourceEntry.getClassLoader();
final ClassLoader ccl = TCLAction.UTIL.getContextClassLoader();
boolean setCl = ccl != mbeanTCL && mbeanTCL != null;
if(setCl)
@@ -151,7 +151,7 @@
public Object invoke(String name, Object[] args, String[] signature) throws
MBeanException, ReflectionException
{
- ClassLoader mbeanTCL = resourceEntry.getClassLoader();
+ ClassLoader mbeanTCL = resourceEntry == null ? null : resourceEntry.getClassLoader();
final ClassLoader ccl = TCLAction.UTIL.getContextClassLoader();
boolean setCl = ccl != mbeanTCL && mbeanTCL != null;
if(setCl)
@@ -174,7 +174,7 @@
public MBeanInfo getMBeanInfo()
{
- ClassLoader mbeanTCL = resourceEntry.getClassLoader();
+ ClassLoader mbeanTCL = resourceEntry == null ? null : resourceEntry.getClassLoader();
final ClassLoader ccl = TCLAction.UTIL.getContextClassLoader();
boolean setCl = ccl != mbeanTCL && mbeanTCL != null;
if(setCl)
@@ -212,7 +212,7 @@
throw ncmbe;
}
- ClassLoader mbeanTCL = resourceEntry.getClassLoader();
+ ClassLoader mbeanTCL = resourceEntry == null ? null : resourceEntry.getClassLoader();
final ClassLoader ccl = TCLAction.UTIL.getContextClassLoader();
boolean setCl = ccl != mbeanTCL && mbeanTCL != null;
if(setCl)
@@ -238,7 +238,7 @@
public void postRegister(Boolean b)
{
- ClassLoader mbeanTCL = resourceEntry.getClassLoader();
+ ClassLoader mbeanTCL = resourceEntry == null ? null : resourceEntry.getClassLoader();
final ClassLoader ccl = TCLAction.UTIL.getContextClassLoader();
boolean setCl = ccl != mbeanTCL && mbeanTCL != null;
if(setCl)
@@ -259,7 +259,7 @@
public void preDeregister() throws Exception
{
- ClassLoader mbeanTCL = resourceEntry.getClassLoader();
+ ClassLoader mbeanTCL = resourceEntry == null ? null : resourceEntry.getClassLoader();
final ClassLoader ccl = TCLAction.UTIL.getContextClassLoader();
boolean setCl = ccl != mbeanTCL && mbeanTCL != null;
if(setCl)
@@ -283,7 +283,7 @@
public void postDeregister()
{
- ClassLoader mbeanTCL = resourceEntry.getClassLoader();
+ ClassLoader mbeanTCL = resourceEntry == null ? null : resourceEntry.getClassLoader();
final ClassLoader ccl = TCLAction.UTIL.getContextClassLoader();
boolean setCl = ccl != mbeanTCL && mbeanTCL != null;
if(setCl)
More information about the jboss-cvs-commits
mailing list