code: public boolean isValid(final int timeout) throws SQLException {
          if (timeout <0) {
              throw new SQLException("Negative timeout supplied");
          }
          try {
              return protocol.ping();
          } catch (Exception e) {
              return false;
          }
      }
docs: Returns true if the connection has not been closed and is still valid. The driver shall submit a query on the
  connection or use some other mechanism that positively verifies the connection is still valid when this method is
  called.
  <p/>
  The query submitted by the driver to validate the connection shall be executed in the context of the current
  transaction.
  
  @param timeout -             The time in seconds to wait for the database operation used to validate the
  connection to complete.  If the timeout period expires before the operation completes, this method
  returns false.  A value of 0 indicates a timeout is not applied to the database operation.
  <p/>
  @return true if the connection is valid, false otherwise
  @throws java.sql.SQLException if the value supplied for <code>timeout</code> is less then 0
  @see java.sql.DatabaseMetaData#getClientInfoProperties
  @since 1.6
  <p/>