Author: fhanik Date: Wed Dec 10 19:40:13 2008 New Revision: 725564 URL: http://svn.apache.org/viewvc?rev=725564&view=rev Log: get rid of closeListener, it turns into spaghetti code
Modified: tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java Modified: tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java?rev=725564&r1=725563&r2=725564&view=diff ============================================================================== --- tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java (original) +++ tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java Wed Dec 10 19:40:13 2008 @@ -58,18 +58,12 @@ */ public class ConnectionPool { - public static interface CloseListener { - void poolClosed(ConnectionPool pool); - } - //logger protected static Log log = LogFactory.getLog(ConnectionPool.class); //=============================================================================== // INSTANCE/QUICK ACCESS VARIABLE //=============================================================================== - protected ConcurrentLinkedQueue<CloseListener> listeners = new ConcurrentLinkedQueue<CloseListener>(); - /** * All the information about the connection pool */ @@ -259,14 +253,6 @@ close(true); } - public void addCloseListener(CloseListener listener) { - listeners.add(listener); - } - - public void removeCloseListener(CloseListener listener) { - listeners.remove(listener); - } - /** * Closes the pool and all disconnects all idle connections * Active connections will be closed upon the [EMAIL PROTECTED] java.sql.Connection#close close} method is called @@ -306,10 +292,6 @@ size.set(0); if (this.getPoolProperties().isJmxEnabled()) stopJmx(); - while (listeners.size()>0) { - CloseListener listener = listeners.poll(); - if (listener!=null) listener.poolClosed(this); - } } //closePool Modified: tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java?rev=725564&r1=725563&r2=725564&view=diff ============================================================================== --- tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java (original) +++ tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java Wed Dec 10 19:40:13 2008 @@ -54,7 +54,7 @@ protected int removeAbandonedTimeout = 60; protected boolean logAbandoned = false; protected int loginTimeout = 10000; - protected String name = "Tomcat Connection Pool["+(poolCounter.addAndGet(1))+"]"; + protected String name = "Tomcat Connection Pool["+(poolCounter.addAndGet(1))+","+System.identityHashCode(PoolProperties.class)+"]"; protected String password; protected String username; protected long validationInterval = 30000; Modified: tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java?rev=725564&r1=725563&r2=725564&view=diff ============================================================================== --- tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java (original) +++ tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PooledConnection.java Wed Dec 10 19:40:13 2008 @@ -117,7 +117,7 @@ //============================================================================ -// com.filip.util.IPoolObject methods +// //============================================================================ public long getAbandonTimeout() { Modified: tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java?rev=725564&r1=725563&r2=725564&view=diff ============================================================================== --- tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java (original) +++ tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java Wed Dec 10 19:40:13 2008 @@ -42,13 +42,14 @@ * @author Filip Hanik * @version 1.0 */ -public class SlowQueryReport extends AbstractCreateStatementInterceptor implements ConnectionPool.CloseListener { +public class SlowQueryReport extends AbstractCreateStatementInterceptor { //logger protected static Log log = LogFactory.getLog(SlowQueryReport.class); /** * the constructors that are used to create statement proxies */ - protected static final Constructor[] constructors = new Constructor[AbstractCreateStatementInterceptor.statements.length]; + protected static final Constructor[] constructors = + new Constructor[AbstractCreateStatementInterceptor.statements.length]; /** * we will be keeping track of query stats on a per pool basis, do we want this, or global? */ @@ -112,7 +113,13 @@ */ @Override public void closeInvoked() { - queries = null; + try { + queries = null; + finalize(); + pool = null; + }catch (Exception x) { + log.debug(x); + } } @@ -184,22 +191,13 @@ }; perPoolStats.put(parent, queries); - //add ourselves to the pool listener, so we can cleanup - parent.addCloseListener(this); } this.pool = parent; } public void finalize() { - if (pool!=null) pool.removeCloseListener(this); } - - public void poolClosed(ConnectionPool pool) { - //clean up after ourselves. - perPoolStats.remove(pool); - } - public CompositeData[] getSlowQueriesCD() { return null; } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]