code: @Override
    public Object invoke(Object o, Method method, Object[] objects)
      throws Throwable
    {
      // throws ShutdownRequestedException when in shutdown mode
      _shutdown.startCall();
      try
      {
        return method.invoke(_object, objects);
      }
      catch(InvocationTargetException e)
      {
        Throwable th = e.getTargetException();
  
        try
        {
          throw th;
        }
        catch(Exception ex)
        {
          throw ex;
        }
        catch(Throwable throwable)
        {
          log.error(method.toString(), throwable);
          throw throwable;
        }
      }
      finally
      {
        _shutdown.endCall();
      }
    }
docs: Method from the interface. Checks for shutdown then dispatches the call
  
  @param o
  @param method
  @param objects
  @return object
  @throws Throwable