docs: private Object invoke(Method method, Object[] args) throws IllegalAccessException, InvocationTargetException {
          ArrayList<ThreadContext> contextAppliedToThread = threadContextDescriptor.taskStarting();
          try {
              return method.invoke(object, args);
          } finally {
              threadContextDescriptor.taskStopping(contextAppliedToThread);
          }
      }