code: final public EJBMethodInfoImpl get(String methodSignature,
                                         String methodNameOnly,
                                         EJSWrapperBase wrapper,
                                         MethodInterface methodInterface, // d164221
                                         TransactionAttribute txAttr) // 199625
      {
          EJBMethodInfoImpl retVal = null;
          BeanMetaData bmd = wrapper.bmd;
          setup(bmd);// delay initting array so we can get slot count
          //d151861
          if ((topOfStack < 0) || orig)
          {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  Tr.debug(tc, "EJBMethodInfoStack::get called with neg TopOfStack " +
                               "or in orig mode:" + topOfStack + " orig: " + orig);
              orig = true;
              elements = null;//d166651
              retVal = bmd.createEJBMethodInfoImpl(bmd.container.getEJBRuntime().getMetaDataSlotSize(MethodMetaData.class));
  
          }//d151861
          else
          {
              if (topOfStack < elements.length)
              {
                  retVal = elements[topOfStack++];
              }
              else
              {
                  ++topOfStack;
                  retVal = bmd.createEJBMethodInfoImpl(bmd.container.getEJBRuntime().getMetaDataSlotSize(MethodMetaData.class));
              }
          }
  
          retVal.initializeInstanceData(null, methodNameOnly, bmd, methodInterface, txAttr, false);
          return retVal;
      }
docs: Get an instance of EJBMethodInfoImpl.
  Either return EJBMethod off the stack or new up a new instance after
  stack capacity is exhausted returns EJBMethodInfoImpl