docs: public boolean isValid(int timeout) throws SQLException {
  
          if (timeout < 0) {
              throw Util.outOfRangeArgument("timeout: " + timeout);
          }
  
          if (this.isInternal) {
              return true;
          } else if (!this.isNetConn) {
              return !this.isClosed();
          } else if (this.isClosed()) {
              return false;
          } else {
              Thread t = new Thread() {
  
                  public void run() {
  
                      try {
                          getMetaData().getDatabaseMajorVersion();
                      } catch (Exception e) {
                          throw new RuntimeException();
                      }
                  }
              };
  
              // Remember:  parm is in *seconds*
              timeout *= 1000;
  
              try {
                  t.start();
  
                  final long start = System.currentTimeMillis();
  
                  t.join(timeout);
  
                  return (timeout > 0)
                         ? (System.currentTimeMillis() - start) < timeout
                         : true;
              } catch (Exception e) {
                  return false;
              }
          }
      }