docs: public EJSHome getHomeAndInitialize() // d648522
      {
          // For performance, use double-checked locking with volatile.
          EJSHome result = (EJSHome) homeInternal; // volatile
          if (result == null)
          {
              EJBModuleMetaDataImpl mmd = bmd._moduleMetaData;
              EJBApplicationMetaData ejbAMD = mmd.getEJBApplicationMetaData();
              ejbAMD.checkIfEJBWorkAllowed(mmd);
  
              // We must lock on an application-wide object because common archive
              // is not thread-safe.
              synchronized (ejbAMD)
              {
                  result = (EJSHome) homeInternal;
                  if (result == null)
                  {
                      // homeInternal is set by EJSContainer.startBean.
                      result = bmd.container.getEJBRuntime().initializeDeferredEJB(this);
                  }
              }
          }
  
          return result;
      }