You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by bl...@apache.org on 2001/04/24 17:39:37 UTC

cvs commit: jakarta-avalon/src/java/org/apache/excalibur/datasource JdbcConnection.java

bloritsch    01/04/24 08:39:36

  Modified:    src/java/org/apache/excalibur/datasource JdbcConnection.java
  Log:
  Provide test for JdbcConnection Timeout
  
  Revision  Changes    Path
  1.3       +43 -2     jakarta-avalon/src/java/org/apache/excalibur/datasource/JdbcConnection.java
  
  Index: JdbcConnection.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon/src/java/org/apache/excalibur/datasource/JdbcConnection.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JdbcConnection.java	2001/04/18 13:15:48	1.2
  +++ JdbcConnection.java	2001/04/24 15:39:32	1.3
  @@ -18,6 +18,7 @@
   import org.apache.avalon.logger.AbstractLoggable;
   import org.apache.excalibur.pool.Recyclable;
   import org.apache.excalibur.pool.Pool;
  +import org.apache.log.Logger;
   
   /**
    * The Connection object used in conjunction with the JdbcDataSource
  @@ -28,7 +29,7 @@
    * total number of Connection objects that are created.
    *
    * @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
  - * @version CVS $Revision: 1.2 $ $Date: 2001/04/18 13:15:48 $
  + * @version CVS $Revision: 1.3 $ $Date: 2001/04/24 15:39:32 $
    */
   public class JdbcConnection
       extends AbstractLoggable
  @@ -36,13 +37,36 @@
   {
       private Connection         m_connection;
       private Pool               m_pool;
  +    private PreparedStatement  m_test_statement;
  +    private SQLException       m_test_exception;
   
       public JdbcConnection( final Connection connection, final Pool pool )
       {
           m_connection = connection;
           m_pool = pool;
  +
  +        try
  +        {
  +            m_test_statement = prepareStatement("select 1");
  +        }
  +        catch ( final SQLException se )
  +        {
  +            m_test_statement = null;
  +            m_test_exception = se;
  +        }
       }
   
  +    public void setLogger(Logger log)
  +    {
  +        super.setLogger(log);
  +
  +        if (m_test_statement == null)
  +        {
  +            getLogger().warn("Could not prepare test statement", m_test_exception);
  +            m_test_exception = null;
  +        }
  +    }
  +
       public Statement createStatement()
           throws SQLException
       {
  @@ -110,7 +134,24 @@
       public boolean isClosed()
           throws SQLException
       {
  -        return m_connection.isClosed();
  +        if ( m_connection.isClosed() )
  +        {
  +            return true;
  +        }
  +
  +        if (m_test_statement != null)
  +        {
  +            try
  +            {
  +                m_test_statement.executeQuery();
  +            }
  +            catch (final SQLException se)
  +            {
  +                return true;
  +            }
  +        }
  +
  +        return false;
       }
   
       public DatabaseMetaData getMetaData()
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: avalon-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: avalon-dev-help@jakarta.apache.org