docs: @Override
      public EJBHome getEJBHome()
      {
          try
          {
              EJSWrapper wrapper = home.getWrapper().getRemoteWrapper();
              Object wrapperRef = container.getEJBRuntime().getRemoteReference(wrapper);
  
              // The EJB spec does not require us to narrow to the actual home
              // interface, but since we have to narrow to EJBHome anyway, we
              // might as well narrow to the specific interface.  It seems like it
              // might be an oversight anyway given that the spec does require
              // SessionContext.getEJBObject to narrow.
              return (EJBHome) PortableRemoteObject.narrow(wrapperRef, home.beanMetaData.homeInterfaceClass);
          } catch (IllegalStateException ise) { // d116480
              // FFDC not logged for this spec required scenario
              throw ise;
          } catch (Exception ex) {
              // p97440 - start of change
  
              // This should never happen. Something is wrong.
              // Need to throw a runtime exception since this is a
              // Java EE architected interface that does not allow a checked
              // exceptions to be thrown. So, throw ContainerEJBException.
              FFDCFilter.processException(ex, CLASS_NAME + ".getEJBHome", "522", this);
              ContainerEJBException ex2 = new ContainerEJBException("Failed to get the wrapper for home.", ex);
  
              Tr.error(tc
                       , "CAUGHT_EXCEPTION_THROWING_NEW_EXCEPTION_CNTR0035E"
                       , new Object[] { ex, ex2.toString() }); // d194031
  
              throw ex2;
  
              // p97440 - end of change
          }
  
      }