@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;
  }
}

@ 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 ; } }
returns true if the server can open a connection .
