diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 2b8f12708b..b1c3bc57cd 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -1028,6 +1028,15 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat public int getLockQueueLength() { return lock.getQueueLength(); } + + public String dump() { + lock.lock(); + try { + return this.toString(); + } finally { + lock.unlock(); + } + } public String toString() { StringBuilder buf = new StringBuilder(); diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSourceMBean.java b/src/main/java/com/alibaba/druid/pool/DruidDataSourceMBean.java index 479175f532..8c2c1a473e 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSourceMBean.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSourceMBean.java @@ -27,7 +27,7 @@ public interface DruidDataSourceMBean extends DruidAbstractDataSourceMBean { int removeAbandoned(); - String toString(); + String dump(); int getWaitThreadCount();