Author: fhanik Date: Wed Dec 10 21:17:19 2008 New Revision: 725584 URL: http://svn.apache.org/viewvc?rev=725584&view=rev Log: Refactor interceptor instantiation a bit
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 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=725584&r1=725583&r2=725584&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 21:17:19 2008 @@ -202,11 +202,10 @@ PoolProperties.InterceptorDefinition[] proxies = getPoolProperties().getJdbcInterceptorsAsArray(); for (int i=proxies.length-1; i>=0; i--) { try { - JdbcInterceptor interceptor = - (JdbcInterceptor) Class.forName(proxies[i].getClassName(), true, Thread.currentThread().getContextClassLoader()).newInstance(); //should this be the class loader? + JdbcInterceptor interceptor = proxies[i].getInterceptorClass().newInstance(); interceptor.setProperties(proxies[i].getProperties()); interceptor.setNext(handler); - interceptor.reset(this, con); //initialize + interceptor.reset(this, con); handler = interceptor; }catch(Exception x) { SQLException sx = new SQLException("Unable to instantiate interceptor chain."); 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=725584&r1=725583&r2=725584&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 21:17:19 2008 @@ -431,7 +431,7 @@ public static class InterceptorDefinition { protected String className; protected List<InterceptorProperty> properties = new ArrayList<InterceptorProperty>(); - + protected volatile Class clazz = null; public InterceptorDefinition(String className) { this.className = className; } @@ -451,6 +451,13 @@ public List<InterceptorProperty> getProperties() { return properties; } + + public Class<? extends JdbcInterceptor> getInterceptorClass() throws ClassNotFoundException { + if (clazz==null) { + clazz = Class.forName(getClassName(), true, JdbcInterceptor.class.getClassLoader()); + } + return clazz; + } } public static class InterceptorProperty { --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]