docs: @Nullable
    public static ISessionWebScope renewSessionScope (@Nonnull final HttpSession aHttpSession)
    {
      ValueEnforcer.notNull (aHttpSession, "HttpSession");
  
      // Get the old session scope
      final ISessionWebScope aOldSessionScope = WebScopeManager.internalGetOrCreateSessionScope (aHttpSession,
                                                                                                 false,
                                                                                                 false);
      if (aOldSessionScope == null)
        return null;
  
      // 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 ();
  
      // Do not invalidate the underlying session - only renew the session scope
      // itself because we don't have the possibility to create a new HTTP
      // session for an arbitrary user!
      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.internalGetOrCreateSessionScope (aHttpSession,
                                                                                                 true,
                                                                                                 true);
      _restoreScopeAttributes (aNewSessionScope, aSessionScopeValues);
      return aNewSessionScope;
    }