public void HandleException(Exception exception, ISynchronizationLogger logger)
            {
                PostponeIfRequired(exception);

                if (!_currentRunWasManuallyTriggered && IsWarning(exception))
                {
                    _successiveWarningsCount++;
                    if (_successiveWarningsCount > _maxSucessiveWarnings)
                    {
                        _successiveWarningsCount = 0;
                        LogError(exception, logger);
                    }
                    else
                    {
                        _currentSyncRunCausedWarning = true;
                        logger.LogAbortedDueToWarning(exception);
                        s_logger.Warn(exception);
                    }
                }
                else
                {
                    LogError(exception, logger);
                }
            }