From 770504cce3f8da4a0dda06d7872218b2c9502a4c Mon Sep 17 00:00:00 2001 From: Yako Date: Fri, 6 Feb 2015 17:02:22 +0800 Subject: [PATCH] fix issue #756 #788 # --- .../com/alibaba/druid/pool/DruidDataSource.java | 10 ++++------ .../druid/stat/DruidDataSourceStatManager.java | 15 +++------------ 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 5339155afa..8a73839301 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -1394,12 +1394,10 @@ public void registerMbean() { public Object run() { ObjectName objectName = DruidDataSourceStatManager.addDataSource(DruidDataSource.this, DruidDataSource.this.name); - - if (objectName != null) { - DruidDataSource.this.setObjectName(objectName); - DruidDataSource.this.mbeanRegistered = true; - } - + + DruidDataSource.this.setObjectName(objectName); + DruidDataSource.this.mbeanRegistered = true; + return null; } }); diff --git a/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatManager.java b/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatManager.java index 5a95616c59..e7c5ede9d2 100644 --- a/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatManager.java +++ b/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatManager.java @@ -127,22 +127,13 @@ static IdentityHashMap getInstances0() { } public synchronized static ObjectName addDataSource(Object dataSource, String name) { - if (dataSource == null || name == null) { - return null; - } - final IdentityHashMap instances = getInstances(); - + synchronized (instances) { MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer(); - - if (mbeanServer == null) { - return null; - } - + if (instances.size() == 0) { try { - ObjectName objectName = new ObjectName(MBEAN_NAME); if (!mbeanServer.isRegistered(objectName)) { mbeanServer.registerMBean(instance, objectName); @@ -150,7 +141,7 @@ public synchronized static ObjectName addDataSource(Object dataSource, String na } catch (JMException ex) { LOG.error("register mbean error", ex); } - + DruidStatService.registerMBean(); }