docs: @Override
      protected final void initialize(boolean reactivate) throws RemoteException, InvocationTargetException {
          // ---------------------------------------------------------
          // Set state to PRE_CREATE so only methods that we permitted
          // to be called during dependency injection are allowed and
          // those methods that are not allowed (e.g. SessionContext.lookup)
          // result in IllegalStateException.
          // ---------------------------------------------------------
          state = PRE_CREATE;
  
          // Not a home bean, so set the BeanId for the SLSB.
          BeanMetaData bmd = home.beanMetaData;
          setId(home.ivStatelessId);
  
          // We may have InterceptorMetaData to process.
          InterceptorMetaData imd = bmd.ivInterceptorMetaData;
  
          // F743-21481
          // Created new try/catch block to ensure that both the creation of the interceptor
          // classes and the injecting of the bean class itself inside run inside the
          // scope of our location transaction.  Previously, the creation of the
          // interceptors and the injection of those interceptors took place at
          // different points in time, and so the creation of the interceptor
          // classes was not under the scope of the local tran.  Now, however, the
          // creation of the interceptor classes and the injection into them occur
          // at the same time, and so it must be covered by the local tran.
          //
          // d578360 - For other bean types, the local transaction surrounds
          // injection methods and PostConstruct lifecycle methods.  Because
          // singleton lifecycle methods run in a defined transaction context,
          // we only need the local transaction for injection methods.
          CallbackContextHelper contextHelper = new CallbackContextHelper(this);
          contextHelper.begin(CallbackContextHelper.Tx.LTC,
                              CallbackContextHelper.Contexts.CallbackBean);
          try {
              createInterceptorsAndInstance(contextHelper);
  
              // Singleton do not support 2.1 client view, so we do not need to ever
              // call setSessionContext method, so just perform dependency injection.
              // Note that dependency injection must occur while in PRE_CREATE state.
              injectInstance(ivManagedObject, ivEjbInstance, this);
  
          } finally {
              contextHelper.complete(true);
          }
  
          // ---------------------------------------------------------
          // Now that dependencies injection has occured, change state
          // to CREATING state to allow additional methods to be called by the
          // PostConstruct interceptor methods (e.g. lookup method).
          // ---------------------------------------------------------
          setState(CREATING);
  
          //-------------------------------------------------------------------
          // Call PostConstruct interceptor method if necessary. Note, Singleton
          // does not have any EJB 2.1 client view, so not reason to worry about
          // calling ejbCreate method.
          //-------------------------------------------------------------------
          if (imd != null && ivCallbackKind == CallbackKind.InvocationContext) // d402681 // d571981
          {
              // This is a 3.1 Singleton that may have one or more PostConstruct interceptors
              // methods. Invoke PostContruct interceptors if there is at least 1
              // PostConstruct interceptor.
  
              InterceptorProxy[] proxies = imd.ivPostConstructInterceptors;
              if (proxies != null) {
                  callTransactionalLifecycleInterceptors(proxies, LifecycleInterceptorWrapper.MID_POST_CONSTRUCT); // F743-1751
              }
          }
  
          //---------------------------------------------------------
          // Now that create has completed, change state to METHOD_READY.
          //---------------------------------------------------------
          setState(METHOD_READY);
      }