From 4976b254394c53758d8ca143c11373da95a140e8 Mon Sep 17 00:00:00 2001 From: wenshao Date: Fri, 16 Sep 2011 08:22:21 +0000 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.alibabatech.com/svn/druid/trunk@811 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../druid/filter/trace/TraceFilter.java | 30 ++++++++++++------- .../druid/bvt/pool/basic/ConnectionTest3.java | 8 +++++ 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/alibaba/druid/filter/trace/TraceFilter.java b/src/main/java/com/alibaba/druid/filter/trace/TraceFilter.java index 9038b06297..a34550caa9 100644 --- a/src/main/java/com/alibaba/druid/filter/trace/TraceFilter.java +++ b/src/main/java/com/alibaba/druid/filter/trace/TraceFilter.java @@ -335,8 +335,10 @@ public class TraceFilter extends FilterAdapter implements TraceFilterMBean { event.putContext(TRACE_CONN_INFO, connection.getProperties().clone()); event.putContext(TRACE_CONN_CONNECTED_TIME, connection.getConnectedTime()); event.putContext(TRACE_CONN_ID, connection.getId()); - event.putContext("savepointId", savepoint.getSavepointId()); - event.putContext("savepointName", savepoint.getSavepointName()); + if (savepoint != null) { + event.putContext("savepointId", savepoint.getSavepointId()); + event.putContext("savepointName", savepoint.getSavepointName()); + } fireEvent(event); } @@ -349,8 +351,10 @@ public class TraceFilter extends FilterAdapter implements TraceFilterMBean { event.putContext(TRACE_CONN_INFO, connection.getProperties().clone()); event.putContext(TRACE_CONN_CONNECTED_TIME, connection.getConnectedTime()); event.putContext(TRACE_CONN_ID, connection.getId()); - event.putContext("savepointId", savepoint.getSavepointId()); - event.putContext("savepointName", savepoint.getSavepointName()); + if (savepoint != null) { + event.putContext("savepointId", savepoint.getSavepointId()); + event.putContext("savepointName", savepoint.getSavepointName()); + } fireEvent(event); } } catch (SQLException ex) { @@ -359,8 +363,10 @@ public class TraceFilter extends FilterAdapter implements TraceFilterMBean { event.putContext(TRACE_CONN_INFO, connection.getProperties().clone()); event.putContext(TRACE_CONN_CONNECTED_TIME, connection.getConnectedTime()); event.putContext(TRACE_CONN_ID, connection.getId()); - event.putContext("savepointId", savepoint.getSavepointId()); - event.putContext("savepointName", savepoint.getSavepointName()); + if (savepoint != null) { + event.putContext("savepointId", savepoint.getSavepointId()); + event.putContext("savepointName", savepoint.getSavepointName()); + } fireEvent(event); } throw ex; @@ -370,8 +376,10 @@ public class TraceFilter extends FilterAdapter implements TraceFilterMBean { event.putContext(TRACE_CONN_INFO, connection.getProperties().clone()); event.putContext(TRACE_CONN_CONNECTED_TIME, connection.getConnectedTime()); event.putContext(TRACE_CONN_ID, connection.getId()); - event.putContext("savepointId", savepoint.getSavepointId()); - event.putContext("savepointName", savepoint.getSavepointName()); + if (savepoint != null) { + event.putContext("savepointId", savepoint.getSavepointId()); + event.putContext("savepointName", savepoint.getSavepointName()); + } fireEvent(event); } throw ex; @@ -381,8 +389,10 @@ public class TraceFilter extends FilterAdapter implements TraceFilterMBean { event.putContext(TRACE_CONN_INFO, connection.getProperties().clone()); event.putContext(TRACE_CONN_CONNECTED_TIME, connection.getConnectedTime()); event.putContext(TRACE_CONN_ID, connection.getId()); - event.putContext("savepointId", savepoint.getSavepointId()); - event.putContext("savepointName", savepoint.getSavepointName()); + if (savepoint != null) { + event.putContext("savepointId", savepoint.getSavepointId()); + event.putContext("savepointName", savepoint.getSavepointName()); + } fireEvent(event); } throw ex; diff --git a/src/test/java/com/alibaba/druid/bvt/pool/basic/ConnectionTest3.java b/src/test/java/com/alibaba/druid/bvt/pool/basic/ConnectionTest3.java index 5ca460254d..783ddad70d 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/basic/ConnectionTest3.java +++ b/src/test/java/com/alibaba/druid/bvt/pool/basic/ConnectionTest3.java @@ -11,6 +11,8 @@ import com.alibaba.druid.mock.MockDriver; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.pool.PoolableConnection; import com.alibaba.druid.stat.DruidDataSourceStatManager; +import com.alibaba.druid.stat.JdbcStatContext; +import com.alibaba.druid.stat.JdbcStatManager; public class ConnectionTest3 extends TestCase { @@ -35,11 +37,17 @@ public class ConnectionTest3 extends TestCase { dataSource.setTestOnBorrow(false); dataSource.setValidationQuery("SELECT 1"); dataSource.setFilters("stat,trace"); + + JdbcStatContext context = new JdbcStatContext(); + context.setTraceEnable(true); + JdbcStatManager.getInstance().setStatContext(context); } protected void tearDown() throws Exception { dataSource.close(); Assert.assertEquals(0, DruidDataSourceStatManager.getInstance().getDataSourceList().size()); + + JdbcStatManager.getInstance().setStatContext(null); } public void test_basic() throws Exception {