code: @Override
    public boolean canOpenWarm()
    {
      State state = _state;
  
      if (state == State.ACTIVE) {
        return true;
      }
      else if (state.isEnabled()) {
        long now = CurrentTime.currentTime();
  
        if (isFailed(now)) {
          return false;
        }
  
        long firstSuccessTime = _firstSuccessTime;
        int warmupState = 0;
  
        if (firstSuccessTime > 0) {
          warmupState = (int) ((now - firstSuccessTime) / _warmupChunkTime);
        }
  
        warmupState -= _currentFailCount;
  
        if (warmupState < 0) {
          return (_failTime - warmupState * _failChunkTime < now);
        }
        else if (WARMUP_MAX <= warmupState) {
          return true;
        }
  
        int connectionMax = WARMUP_CONNECTION_MAX[warmupState];
  
        int idleCount = getIdleCount();
        int activeCount = _activeCount.get() + _startingCount.get();
        int totalCount = activeCount + idleCount;
        
        return totalCount < connectionMax;
      }
      else {
        return false;
      }
    }
docs: Returns true if the server can open a connection.