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 ; }
Get an instance of EJBMethodInfoImpl . Either return EJBMethod off the stack or new up a new instance after stack capacity is exhausted returns EJBMethodInfoImpl