diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index d16cc4ed0a..f05dea731d 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -26,6 +26,7 @@ import java.util.HashMap; import java.util.IdentityHashMap; import java.util.List; import java.util.Map; +import java.util.Properties; import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; @@ -305,7 +306,6 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat if (conn == null || conn.isClosed()) { lock.lock(); try { - holder.reset(); decrementActiveCount(); closeCount++; } finally { @@ -332,7 +332,6 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat if (count >= maxIdle) { lock.lock(); try { - holder.reset(); conn.close(); decrementActiveCount(); } finally { @@ -355,7 +354,6 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat closeCount++; // 第六步,加入队列中(putLast) - holder.reset(); putLast(holder); recycleCount++; } finally { @@ -755,8 +753,12 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat if (this.connectionProperties == null) { return null; } - - return connectionProperties.toString(); + + Properties properties = new Properties(this.connectionProperties); + if (properties.contains("password")) { + properties.put("password", "******"); + } + return properties.toString(); } public String[] getFilterClasses() { @@ -841,7 +843,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat map.put("StatementLastErrorStackTrace", null); } - map.put("StatementExecuteMillis", stat.getStatementStat().getMillisTotal()); + map.put("StatementExecuteMillisTotal", stat.getStatementStat().getMillisTotal()); map.put("StatementExecuteLastTime", stat.getStatementStat().getExecuteLastTime()); map.put("ConnectionConnectingCount", stat.getConnectionStat().getConnectingCount()); map.put("ResultSetCloseCount", stat.getResultSetStat().getCloseCount()); @@ -952,7 +954,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat map.put("StatementLastErrorMessage", null); map.put("StatementLastErrorStackTrace", null); - map.put("StatementExecuteMillis", null); + map.put("StatementExecuteMillisTotal", null); map.put("ConnectionConnectingCount", null); map.put("StatementExecuteLastTime", null); map.put("ResultSetCloseCount", null); diff --git a/src/main/java/com/alibaba/druid/pool/PoolableConnection.java b/src/main/java/com/alibaba/druid/pool/PoolableConnection.java index 08abef32f9..b24c84f429 100644 --- a/src/main/java/com/alibaba/druid/pool/PoolableConnection.java +++ b/src/main/java/com/alibaba/druid/pool/PoolableConnection.java @@ -123,6 +123,7 @@ public class PoolableConnection implements PooledConnection, Connection { listener.connectionClosed(new ConnectionEvent(this)); } + holder.reset(); holder.getDataSource().recycle(this); holder = null; conn = null; diff --git a/src/main/java/com/alibaba/druid/proxy/jdbc/DataSourceProxyImpl.java b/src/main/java/com/alibaba/druid/proxy/jdbc/DataSourceProxyImpl.java index d4c0d05ed9..5f7850bcfe 100644 --- a/src/main/java/com/alibaba/druid/proxy/jdbc/DataSourceProxyImpl.java +++ b/src/main/java/com/alibaba/druid/proxy/jdbc/DataSourceProxyImpl.java @@ -169,10 +169,14 @@ public class DataSourceProxyImpl implements DataSourceProxy, DataSourceProxyImpl } public String getProperties() { - if (properties == null) { + if (this.properties == null) { return null; } + Properties properties = new Properties(this.properties); + if (properties.contains("password")) { + properties.put("password", "******"); + } return properties.toString(); } @@ -247,7 +251,7 @@ public class DataSourceProxyImpl implements DataSourceProxy, DataSourceProxyImpl map.put("StatementLastErrorStackTrace", null); } - map.put("StatementExecuteMillis", stat.getStatementStat().getMillisTotal()); + map.put("StatementExecuteMillisTotal", stat.getStatementStat().getMillisTotal()); map.put("StatementExecuteLastTime", stat.getStatementStat().getExecuteLastTime()); map.put("ConnectionConnectingCount", stat.getConnectionStat().getConnectingCount()); map.put("ResultSetCloseCount", stat.getResultSetStat().getCloseCount()); @@ -358,7 +362,7 @@ public class DataSourceProxyImpl implements DataSourceProxy, DataSourceProxyImpl map.put("StatementLastErrorMessage", null); map.put("StatementLastErrorStackTrace", null); - map.put("StatementExecuteMillis", null); + map.put("StatementExecuteMillisTotal", null); map.put("ConnectionConnectingCount", null); map.put("StatementExecuteLastTime", null); map.put("ResultSetCloseCount", null); diff --git a/src/main/java/com/alibaba/druid/stat/JdbcStatManager.java b/src/main/java/com/alibaba/druid/stat/JdbcStatManager.java index 97691adb02..e0a2f7c346 100644 --- a/src/main/java/com/alibaba/druid/stat/JdbcStatManager.java +++ b/src/main/java/com/alibaba/druid/stat/JdbcStatManager.java @@ -136,7 +136,7 @@ public class JdbcStatManager implements JdbcStatManagerMBean { , "ConnectionConnectLastTime", "ConnectionConnectErrorCount", "ConnectionConnectErrorLastTime", "ConnectionConnectErrorLastMessage", "ConnectionConnectErrorLastStackTrace" // , "StatementCreateCount", "StatementPrepareCount", "StatementPreCallCount", "StatementExecuteCount", "StatementRunningCount" // , "StatementConcurrentMax", "StatementCloseCount", "StatementErrorCount", "StatementLastErrorTime", "StatementLastErrorMessage" // - , "StatementLastErrorStackTrace", "StatementExecuteMillis", "ConnectionConnectingCount", "StatementExecuteLastTime", "ResultSetCloseCount" // + , "StatementLastErrorStackTrace", "StatementExecuteMillisTotal", "ConnectionConnectingCount", "StatementExecuteLastTime", "ResultSetCloseCount" // , "ResultSetOpenCount", "ResultSetOpenningCount", "ResultSetOpenningMax", "ResultSetFetchRowCount", "ResultSetLastOpenTime" // , "ResultSetErrorCount", "ResultSetOpenningMillisTotal", "ResultSetLastErrorTime", "ResultSetLastErrorMessage", "ResultSetLastErrorStackTrace", "ConnectionConnectCount", "ConnectionErrorLastMessage", "ConnectionErrorLastStackTrace", "ConnectionConnectMillisTotal", "ConnectionConnectingCountMax" // , "ConnectionConnectMillisMax", "ConnectionErrorLastTime", "ConnectionAliveMillisMax", "ConnectionAliveMillisMin" //