code: public static void internalSetAndInitRequestScope (@Nonnull final IRequestScope aRequestScope)
    {
      ValueEnforcer.notNull (aRequestScope, "RequestScope");
      ValueEnforcer.isTrue (ScopeManager::isGlobalScopePresent,
                            "No global context present! May be the global context listener is not installed?");
  
      // Happens if an internal redirect happens in a web-application (e.g. for
      // 404 page)
      final IRequestScope aExistingRequestScope = s_aRequestScopeTL.get ();
      if (aExistingRequestScope != null)
      {
        if (LOGGER.isWarnEnabled ())
          LOGGER.warn ("A request scope is already present - will overwrite it: " + aExistingRequestScope.toString ());
        if (aExistingRequestScope.isValid ())
        {
          // The scope shall be destroyed here, as this is most probably a
          // programming error!
          LOGGER.warn ("Destroying the old request scope before the new one gets initialized!");
          _destroyRequestScope (aExistingRequestScope);
        }
      }
  
      // set request context
      s_aRequestScopeTL.set (aRequestScope);
  
      // Now init the scope
      aRequestScope.initScope ();
  
      // call SPIs
      ScopeSPIManager.getInstance ().onRequestScopeBegin (aRequestScope);
    }
docs: This method is only to be called by this class and the web scope manager!
  
  @param aRequestScope
  The request scope to use. May not be <code>null</code>.