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]

Reply via email to