code: public void onScopeBegin (@Nonnull final ISessionScope aSessionScope)
    {
      ValueEnforcer.notNull (aSessionScope, "SessionScope");
  
      final String sSessionID = aSessionScope.getID ();
      m_aRWLock.writeLocked ( () -> {
        if (m_aSessionScopes.put (sSessionID, aSessionScope) != null)
          LOGGER.error ("Overwriting session scope with ID '" + sSessionID + "'");
      });
  
      // Init the scope after it was registered
      aSessionScope.initScope ();
  
      // Invoke SPIs
      ScopeSPIManager.getInstance ().onSessionScopeBegin (aSessionScope);
  
      // Increment statistics counter
      s_aUniqueSessionCounter.increment ();
    }
docs: Register the passed session scope in the internal map, call the
  {@link ISessionScope #initScope()} method and finally invoke the SPIs for
  the new scope.
  
  @param aSessionScope
  The session scope that was just created. May not be
  <code>null</code>.