code: private boolean performStateCheck(final int increment) {
          CheckIntervalData currentData;
          CheckIntervalData nextData;
          State currentState;
  
          do {
              final long time = now();
              currentState = state.get();
              currentData = checkIntervalData.get();
              nextData = nextCheckIntervalData(increment, currentData, currentState, time);
          } while (!updateCheckIntervalData(currentData, nextData));
  
          // This might cause a race condition if other changes happen in between!
          // Refer to the header comment!
          if (stateStrategy(currentState).isStateTransition(this, currentData, nextData)) {
              currentState = currentState.oppositeState();
              changeStateAndStartNewCheckInterval(currentState);
          }
          return !isOpen(currentState);
      }
docs: Actually checks the state of this circuit breaker and executes a state transition
  if necessary.
  
  @param increment the increment for the internal counter
  @return a flag whether the circuit breaker is now closed