docs: public EJBMetaData getEJBMetaData()
                      throws RemoteException
      {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled(); // d532639.2
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(tc, "getEJBMetaData");
  
          homeEnabled();
  
          // We construct the meta data lazily here to avoid initialization-
          // ordering issues if we attempt to do it in initialize().
  
          if (ejbMetaData == null)
          {
              // p116618 - start of change
              EJSWrapper wrapper = getWrapper().getRemoteWrapper();
  
              if (cvUsePortableClass == false) // p125891
              {
                  if (isTraceOn && tc.isDebugEnabled())
                      Tr.debug(tc, "getEJBMetaData():Creating non-portable EJBMetaDataImpl");
  
                  ejbMetaData =
                                  new com.ibm.ejs.container.EJBMetaDataImpl
                                  (beanMetaData,
                                                  getWrapper().getRemoteWrapper(),
                                                  j2eeName); // p125891
  
              }
              else
              {
                  if (isTraceOn && tc.isDebugEnabled()) // p125891
                      Tr.debug(tc, "getEJBMetaData():Creating portable EJBMetaDataImpl"); //p125891
  
                  Object wrapperRef = container.getEJBRuntime().getRemoteReference(wrapper);
                  EJBHome homeStub = (EJBHome) PortableRemoteObject.narrow(wrapperRef, EJBHome.class);
                  Class<?> pKeyClass = null;
                  if (beanMetaData.pKeyClass != null) {
                      pKeyClass = beanMetaData.pKeyClass;
                  }
  
                  int beanType = EJBMetaDataImpl.NON_SESSION_BEAN;
                  if (beanMetaData.type == InternalConstants.TYPE_STATEFUL_SESSION) {
                      beanType = EJBMetaDataImpl.STATEFUL_SESSION;
                  }
                  else if (beanMetaData.type == InternalConstants.TYPE_STATELESS_SESSION) {
                      beanType = EJBMetaDataImpl.STATELESS_SESSION;
                  }
  
                  ejbMetaData =
                                  new EJBMetaDataImpl(beanType,
                                                  homeStub,
                                                  beanMetaData.enterpriseBeanAbstractClass, //150685
                                                  beanMetaData.homeInterfaceClass,
                                                  beanMetaData.remoteInterfaceClass,
                                                  pKeyClass);
              }
              // p116618 - end of change
          }
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "getEJBMetaData", ejbMetaData);
          return ejbMetaData;
      }