diff --git a/src/main/java/com/alibaba/druid/filter/stat/StatFilter.java b/src/main/java/com/alibaba/druid/filter/stat/StatFilter.java index cfd971dc0e..71694e6725 100644 --- a/src/main/java/com/alibaba/druid/filter/stat/StatFilter.java +++ b/src/main/java/com/alibaba/druid/filter/stat/StatFilter.java @@ -822,6 +822,8 @@ public class StatFilter extends FilterEventAdapter implements StatFilterMBean { private void clobOpenAfter(JdbcDataSourceStat dataSourceStat, ClobProxy clob) { dataSourceStat.incrementClobOpenCount(); + + StatFilterContext.getInstance().clob_open(); } @Override @@ -830,6 +832,8 @@ public class StatFilter extends FilterEventAdapter implements StatFilterMBean { JdbcDataSourceStat dataSourceStat = chain.getDataSource().getDataSourceStat(); dataSourceStat.incrementClobFreeCount(); + + StatFilterContext.getInstance().clob_free(); } } diff --git a/src/main/java/com/alibaba/druid/filter/stat/StatFilterContext.java b/src/main/java/com/alibaba/druid/filter/stat/StatFilterContext.java index 3784ed6b4e..c2a657a5c9 100644 --- a/src/main/java/com/alibaba/druid/filter/stat/StatFilterContext.java +++ b/src/main/java/com/alibaba/druid/filter/stat/StatFilterContext.java @@ -110,10 +110,16 @@ public class StatFilterContext { } public void clob_open() { - + for (int i = 0; i < listeners.size(); ++i) { + StatFilterContextListener listener = listeners.get(i); + listener.clob_open(); + } } - public void clobFree() { - + public void clob_free() { + for (int i = 0; i < listeners.size(); ++i) { + StatFilterContextListener listener = listeners.get(i); + listener.clob_free(); + } } } diff --git a/src/main/java/com/alibaba/druid/filter/stat/StatFilterContextListener.java b/src/main/java/com/alibaba/druid/filter/stat/StatFilterContextListener.java index 16d258c337..2c9dcdde87 100644 --- a/src/main/java/com/alibaba/druid/filter/stat/StatFilterContextListener.java +++ b/src/main/java/com/alibaba/druid/filter/stat/StatFilterContextListener.java @@ -25,4 +25,8 @@ public interface StatFilterContextListener { void resultSet_open(); void resultSet_close(long nanos); + + void clob_open(); + + void clob_free(); } diff --git a/src/main/java/com/alibaba/druid/filter/stat/StatFilterContextListenerAdapter.java b/src/main/java/com/alibaba/druid/filter/stat/StatFilterContextListenerAdapter.java index 5ab917340b..8ca3f31c48 100644 --- a/src/main/java/com/alibaba/druid/filter/stat/StatFilterContextListenerAdapter.java +++ b/src/main/java/com/alibaba/druid/filter/stat/StatFilterContextListenerAdapter.java @@ -62,5 +62,15 @@ public class StatFilterContextListenerAdapter implements StatFilterContextListen } + @Override + public void clob_open() { + + } + + @Override + public void clob_free() { + + } + }