docs: public void startEnvSetup(boolean transactional) throws Exception {
          // set classloader
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && logger.isLoggable(Level.FINE)) {
              logger.logp(Level.FINE, CLASS_NAME, "startEnvSetup", "enter");
          }
          ClassLoader origCl = ThreadContextHelper.getContextClassLoader();
          final ClassLoader warClassLoader = getClassLoaderInternal();
          if (warClassLoader != origCl) {
              ThreadContextHelper.setClassLoader(warClassLoader);
          } else {
              origCl = null;
          }
          // createCollaboratorHelper();
          webAppNameSpaceCollab.preInvoke(getModuleMetaData().getCollaboratorComponentMetaData());
  
          // transaction preinvoke
          Object tx = null;
          if (transactional) {
              tx = txCollab.preInvoke(null, this.isServlet23);
          }
          UnsynchronizedStack envObjectStack = (UnsynchronizedStack) envObject.get();
          if (envObjectStack == null) {
              envObjectStack = new UnsynchronizedStack();
              envObject.set(envObjectStack);
          }
          envObjectStack.push(new EnvObject(origCl, tx));
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && logger.isLoggable(Level.FINE)) {
              logger.logp(Level.FINE, CLASS_NAME, "startEnvSetup", "exit");
          }
      }