From 94eef043f52995c4d29832f6fc0599f86023d1d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E9=93=81?= Date: Thu, 5 May 2016 17:44:38 +0800 Subject: [PATCH] handle MBean preRegister method, if exists, unregister. --- .../java/com/alibaba/druid/pool/DruidDataSource.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 8279d8fe3b..fa36a698c7 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -2879,8 +2879,15 @@ public class DruidDataSource extends DruidAbstractDataSource @Override public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception { - //do nothing - //return original name to avoid NullPointerException + if (server != null) { + try { + if (server.isRegistered(name)) { + server.unregisterMBean(name); + } + } catch (Exception ex) { + LOG.warn("DruidDataSource preRegister error", ex); + } + } return name; }