docs: @Override
      // New for EJB 3.0    d366807.1
      @SuppressWarnings("unchecked")
      public <T> T getBusinessObject(Class<T> businessInterface)
                      throws IllegalStateException
      {
          Object result = null;
  
          // d367572.1 start
          if (state == PRE_CREATE || state == DESTROYED)
          {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  Tr.debug(tc, "getBusinessObject: Incorrect state: " + getStateName(state));
              throw new IllegalStateException(getStateName(state));
          } // d367572.1 end
  
          if (businessInterface == null)
          {
              throw new IllegalStateException("Requested business interface not found : null");
          }
  
          try
          {
              EJSWrapperCommon common = container.wrapperManager.getWrapper(beanId);
              result = common.getBusinessObject(businessInterface.getName());
          } catch (IllegalStateException ise)
          {
              // FFDC not logged for this spec required scenario
              throw ise;
          } catch (Throwable ex)
          {
              // Not expecting any Throwable to occur. Log unexpected Throwable and
              // throw an EJBException since this is a Java EE architected interface.
              FFDCFilter.processException(ex, CLASS_NAME + ".getBusinessObject", "516", this);
              EJBException ejbex = ExceptionUtil.EJBException("getBusinessObject() failed",
                                                              ex);
              Tr.error(tc,
                       "CAUGHT_EXCEPTION_THROWING_NEW_EXCEPTION_CNTR0035E",
                       new Object[] { ex, ejbex.toString() });
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  Tr.debug(tc, "getBusinessObject() failed", ex);
              throw ejbex;
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
              Tr.debug(tc, "getBusinessObject : " + result.getClass().getName());
  
          return (T) result;
      }