From: fhanik Date: Thu, 11 Dec 2008 05:49:10 +0000 (+0000) Subject: Implemented closure notification. Turns out generics only work on an instance level... X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=76c5bcdefbb0bda790259505d5a40d661bc752ea;p=tomcat7.0 Implemented closure notification. Turns out generics only work on an instance level, so you cant use static methods without having to use reflection. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@725586 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java b/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java index b74dfee51..6e41ed7cf 100644 --- a/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java +++ b/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java @@ -291,7 +291,14 @@ public class ConnectionPool { } size.set(0); if (this.getPoolProperties().isJmxEnabled()) stopJmx(); - + PoolProperties.InterceptorDefinition[] proxies = getPoolProperties().getJdbcInterceptorsAsArray(); + for (int i=0; iThis method is only invoked on a single instance of the interceptor, and not on every instance created. + * @param pool - the pool that is being closed. + */ + public void poolClosed(ConnectionPool pool) { + } } diff --git a/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java b/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java index 7c04f8a72..d0dc7b33c 100644 --- a/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java +++ b/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java @@ -454,9 +454,9 @@ public class PoolProperties { public Class getInterceptorClass() throws ClassNotFoundException { if (clazz==null) { - clazz = Class.forName(getClassName(), true, JdbcInterceptor.class.getClassLoader()); + clazz = Class.forName(getClassName(), true, this.getClass().getClassLoader()); } - return clazz; + return (Class)clazz; } } diff --git a/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java b/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java index 6a47ac58e..1fdd35be6 100644 --- a/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java +++ b/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java @@ -184,6 +184,16 @@ public class SlowQueryReport extends AbstractCreateStatementInterceptor { } } + + /** + * {@inheritDoc} + */ + @Override + public void poolClosed(ConnectionPool pool) { + perPoolStats.remove(pool.getName()); + super.poolClosed(pool); + } + public CompositeData[] getSlowQueriesCD() { return null; }