Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.mchange.v2.c3p0
Class AbstractConnectionTester

    java.lang.Object
      com.mchange.v2.c3p0.AbstractConnectionTester

All Implemented Interfaces:
  ConnectionTester, FullQueryConnectionTester, QueryConnectionTester, UnifiedConnectionTester, java.io.Serializable

Direct Known Subclasses:
  DefaultConnectionTester

    public abstract class AbstractConnectionTester

extends java.lang.Object
implements UnifiedConnectionTester

Having expanded the once-simple ConnectionTester interface to support both user-specified queries and return of root cause Exceptions (via an out-param), this interface has grown unnecessarily complex.

If you wish to implement a custom Connection tester, here is the simple way to do it

1. Extend `AbstractConnectionTester`
2. Override only the two abstract methods

- `public int activeCheckConnection(Connection c, String preferredTestQuery, Throwable[] rootCauseOutParamHolder)`
- `public int statusOnException(Connection c, Throwable t, String preferredTestQuery, Throwable[] rootCauseOutParamHolder)`

3. Take care to ensure that your methods are defined to allow `preferredTestQuery` and `rootCauseOutParamHolder` to be `null`.

Parameter `rootCauseOutParamHolder` is an optional parameter, which if supplied, will be a Throwable array whose size it at least one. If a Connection test fails because of some Exception, the Connection tester may set this Exception as the zero-th element of the array to provide information about why and how the test failed.

See Also:
  Serialized Form

Field Summary

Fields inherited from interface com.mchange.v2.c3p0.UnifiedConnectionTester
`CONNECTION_IS_INVALID, CONNECTION_IS_OKAY, DATABASE_IS_INVALID`

Constructor Summary
`AbstractConnectionTester()`

Method Summary
`int` | `activeCheckConnection(java.sql.Connection c)`
`int` | `activeCheckConnection(java.sql.Connection c, java.lang.String preferredTestQuery)`
`abstract int` | `activeCheckConnection(java.sql.Connection c, java.lang.String preferredTestQuery, java.lang.Throwable[] rootCauseOutParamHolder)` Override, but remember that `preferredTestQuery` and `rootCauseOutParamHolder` can be null.
`int` | `activeCheckConnection(java.sql.Connection c, java.lang.Throwable[] rootCauseOutParamHolder)`
`int` | `statusOnException(java.sql.Connection c, java.lang.Throwable t)`
`int` | `statusOnException(java.sql.Connection c, java.lang.Throwable t, java.lang.String preferredTestQuery)`
`abstract int` | `statusOnException(java.sql.Connection c, java.lang.Throwable t, java.lang.String preferredTestQuery, java.lang.Throwable[] rootCauseOutParamHolder)` Override, but remember that `preferredTestQuery` and `rootCauseOutParamHolder` can be null.
`int` | `statusOnException(java.sql.Connection c, java.lang.Throwable t, java.lang.Throwable[] rootCauseOutParamHolder)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface com.mchange.v2.c3p0.UnifiedConnectionTester
`equals, hashCode`

Constructor Detail

### AbstractConnectionTester

    public AbstractConnectionTester()

Method Detail

### activeCheckConnection

    public abstract int activeCheckConnection(java.sql.Connection c,
                                              java.lang.String preferredTestQuery,
                                              java.lang.Throwable[] rootCauseOutParamHolder)

  Override, but remember that `preferredTestQuery` and `rootCauseOutParamHolder` can be null.

  Specified by:
    `activeCheckConnection` in interface `UnifiedConnectionTester`

### statusOnException

    public abstract int statusOnException(java.sql.Connection c,
                                          java.lang.Throwable t,
                                          java.lang.String preferredTestQuery,
                                          java.lang.Throwable[] rootCauseOutParamHolder)

  Override, but remember that `preferredTestQuery` and `rootCauseOutParamHolder` can be null.

  Specified by:
    `statusOnException` in interface `UnifiedConnectionTester`

### activeCheckConnection

    public int activeCheckConnection(java.sql.Connection c)

  Specified by:
    `activeCheckConnection` in interface `ConnectionTester`
  Specified by:
    `activeCheckConnection` in interface `UnifiedConnectionTester`

### activeCheckConnection

    public int activeCheckConnection(java.sql.Connection c,
                                     java.lang.Throwable[] rootCauseOutParamHolder)

  Specified by:
    `activeCheckConnection` in interface `UnifiedConnectionTester`

### activeCheckConnection

    public int activeCheckConnection(java.sql.Connection c,
                                     java.lang.String preferredTestQuery)

  Specified by:
    `activeCheckConnection` in interface `QueryConnectionTester`
  Specified by:
    `activeCheckConnection` in interface `UnifiedConnectionTester`

### statusOnException

    public int statusOnException(java.sql.Connection c,
                                 java.lang.Throwable t)

  Specified by:
    `statusOnException` in interface `ConnectionTester`
  Specified by:
    `statusOnException` in interface `UnifiedConnectionTester`

### statusOnException

    public int statusOnException(java.sql.Connection c,
                                 java.lang.Throwable t,
                                 java.lang.Throwable[] rootCauseOutParamHolder)

  Specified by:
    `statusOnException` in interface `UnifiedConnectionTester`

### statusOnException

    public int statusOnException(java.sql.Connection c,
                                 java.lang.Throwable t,
                                 java.lang.String preferredTestQuery)

  Specified by:
    `statusOnException` in interface `FullQueryConnectionTester`
  Specified by:
    `statusOnException` in interface `UnifiedConnectionTester`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD