docs: @Nonnull
    public static EChange renewCurrentSessionScope (final boolean bInvalidateHttpSession)
    {
      // Get the old session scope
      final ISessionWebScope aOldSessionScope = WebScopeManager.getSessionScope (false);
      if (aOldSessionScope == null)
      {
        // No session present, so no need to create a new one
        return EChange.UNCHANGED;
      }
  
      // OK, we have a session scope to renew
  
      // Save all values from session scopes and from all session application
      // scopes
      final ICommonsMap <String, IScopeRenewalAware> aSessionScopeValues = aOldSessionScope.getAllScopeRenewalAwareAttributes ();
  
      // Clear the old the session scope
      if (bInvalidateHttpSession)
      {
        // renew the session
        LOGGER.info ("Invalidating session " + aOldSessionScope.getID ());
        aOldSessionScope.selfDestruct ();
      }
      else
      {
        // Do not invalidate the underlying session - only renew the session scope
        // itself
        ScopeSessionManager.getInstance ().onScopeEnd (aOldSessionScope);
      }
  
      // Ensure that we get a new session!
      // Here it is OK to create a new session scope explicitly!
      final ISessionWebScope aNewSessionScope = WebScopeManager.internalGetSessionScope (true, true);
      _restoreScopeAttributes (aNewSessionScope, aSessionScopeValues);
      return EChange.CHANGED;
    }