On 07/02/2009 05:10 PM, sebb wrote:
On 02/07/2009, fha...@apache.org<fha...@apache.org>  wrote:
Author: fhanik
  Date: Thu Jul  2 17:08:50 2009
  New Revision: 790684

  URL: http://svn.apache.org/viewvc?rev=790684&view=rev
  Log:
  Add some doco, make shared variables volatile

  Modified:
     
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.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=790684&r1=790683&r2=790684&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
 Thu Jul  2 17:08:50 2009
  @@ -48,17 +48,28 @@
   */

   public class ConnectionPool {
  +    /**
  +     * Prefix type for JMX registration
  +     */
      public static final String POOL_JMX_TYPE_PREFIX = "tomcat.jdbc:type=";

  -    //logger
  +    /**
  +     * Logger
  +     */
      protected static Log log = LogFactory.getLog(ConnectionPool.class);

      
//===============================================================================
      //         INSTANCE/QUICK ACCESS VARIABLE
      
//===============================================================================
  +    /**
  +     * Carries the size of the pool, instead of relying on a queue 
implementation
  +     * that usually iterates over to get an exact count
  +     */
      private AtomicInteger size = new AtomicInteger(0);
  +
      /**
       * All the information about the connection pool
  +     * These are the properties the pool got instantiated with
       */
      private PoolProperties poolProperties;

  @@ -76,12 +87,12 @@
      /**
       * The thread that is responsible for checking abandoned and idle threads
       */
  -    private PoolCleaner poolCleaner;
  +    private volatile PoolCleaner poolCleaner;

      /**
       * Pool closed flag
       */
  -    private boolean closed = false;
  +    private volatile boolean closed = false;

      /**
       * Since newProxyInstance performs the same operation, over and over
  @@ -95,7 +106,7 @@
      private ThreadPoolExecutor cancellator = new 
ThreadPoolExecutor(0,1,1000,TimeUnit.MILLISECONDS,new 
LinkedBlockingQueue<Runnable>());

      /**
  -     * reference to mbean
  +     * reference to the JMX mbean
       */
      protected org.apache.tomcat.jdbc.pool.jmx.ConnectionPool jmxPool = null;

  @@ -119,6 +130,14 @@
      }


  +    /**
  +     * Retrieves a Connection future. If a connection is not available, one 
can block using future.get()
  +     * until a connection has become available.
  +     * If a connection is not retrieved, the Future must be cancelled in 
order for the connection to be returned
  +     * to the pool.
  +     * @return

What does it return?
it returns a chocolate chip cookie for patch submissions
  +     * @throws SQLException
  +     */
      public Future<Connection>  getConnectionAsync() throws SQLException {
          if (idle instanceof FairBlockingQueue) {
              Future<PooledConnection>  pcf = 
((FairBlockingQueue<PooledConnection>)idle).pollAsync();
  @@ -130,7 +149,7 @@

      /**
       * Borrows a connection from the pool
  -     * @return Connection - a java.sql.Connection reflection proxy, wrapping 
the underlying object.
  +     * @return Connection - a java.sql.Connection/javax.sql.PooledConnection 
reflection proxy, wrapping the underlying object.
       * @throws SQLException
       */
      public Connection getConnection() throws SQLException {
  @@ -180,6 +199,10 @@
          return busy.size();
      }

  +    /**
  +     * Returns the number of idle connections
  +     * @return

Ditto

  +     */
      public int getIdle() {
          return idle.size();
      }
  @@ -197,7 +220,11 @@
      
//===============================================================================


  +    /**
  +     * configures a pooled connection as a proxy
  +     */
      protected Connection setupConnection(PooledConnection con) throws 
SQLException {
  +        //fetch previous interceptor proxy
          JdbcInterceptor handler = con.getHandler();
          if (handler==null) {
              //build the proxy handler
  @@ -252,6 +279,10 @@
          return proxyClassConstructor;
      }

  +    /**
  +     * If the connection pool gets garbage collected, lets make sure we 
clean up
  +     * and close all the connections
  +     */
      @Override
      protected void finalize() throws Throwable {
          close(true);



  ---------------------------------------------------------------------
  To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
  For additional commands, e-mail: dev-h...@tomcat.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Reply via email to