You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by fh...@apache.org on 2008/12/11 06:17:19 UTC

svn commit: r725584 - in /tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool: ConnectionPool.java PoolProperties.java

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: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org