docs: public Object invoke(EJSDeployedSupport s, Timer timer) throws Exception {
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
              Tr.debug(tc, "EJBinvoke(" + s.methodId + ":" +
                           s.methodInfo.getMethodName() + ")");
  
          // Get BeanO stored in EJSDeployedSupport during preInvoke processing and
          // use it to get a InvocationContext needed for invoking the AroundInvoke
          // or AroundTimeout interceptors (works for Session and MDB).
          ManagedBeanOBase beanO = (ManagedBeanOBase) s.beanO;
          InvocationContextImpl<?> invCtx = beanO.getInvocationContext();
          invCtx.setTimer(timer);
  
          // Invoke the around invoke interceptors, which will invoke the business method when
          // the last interceptor calls proceed on InvocationContext.
          EJBMethodInfoImpl methodInfo = s.methodInfo;
          return invCtx.doAroundInvoke(methodInfo.ivAroundInterceptors,
                                       methodInfo.ivMethod,
                                       s.ivEJBMethodArguments,
                                       s);
      }