code: private void preLoadBeanPool() {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
              Tr.debug(tc, "preLoadBeanPool: " + j2eeName);
  
          synchronized (beanPool) {
              Object oldClassLoader = ThreadContextAccessor.UNCHANGED;
  
              try {
                  // To support injection, etc. we must put the bmd and classloader on the thread.
                  ivCMDAccessor.beginContext(beanMetaData);
                  oldClassLoader = EJBThreadData.svThreadContextAccessor.pushContextClassLoaderForUnprivileged(beanMetaData.ivContextClassLoader);
  
                  for (int i = ivNumberBeansCreated; i < beanMetaData.ivInitialPoolSize; i++) {
                      BeanO beanO = beanOFactory.create(container, this, false);
                      beanPool.put(beanO);
                      if (beanMetaData.ivMaxCreation > 0) {
                          ++ivNumberBeansCreated;
                          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                              Tr.debug(tc, "Pre-load BeanPool(" +
                                           ivNumberBeansCreated + "/" +
                                           beanMetaData.ivMaxCreation + ")");
                      }
                  }
              } catch (Throwable ex) {
                  FFDCFilter.processException(ex, CLASS_NAME + ".preLoadBeanPool", "561", this);
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                      Tr.debug(tc, "Pre-load of BeanPool failed: exception ignored: " +
                                   ex);
                  if (ex instanceof InvocationTargetException) {
                      ex = ex.getCause();
                  }
                  Tr.warning(tc, "IGNORING_UNEXPECTED_EXCEPTION_CNTR0033E", ex);
              } finally {
                  EJBThreadData.svThreadContextAccessor.popContextClassLoaderForUnprivileged(oldClassLoader);
                  ivCMDAccessor.endContext();
              }
          }
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "preLoadBeanPool");
      }
docs: Pre-load the BeanPool if the BeanPool min value has been configured as a
  'hard' limit. Any exceptions encountered will be ignored, and the pool
  just not pre-loaded. Currently only supported for Stateless Session
  beans.