docs: protected OptionalThing<CrossVMState> crossVMBeginning(Cron4jJob job) {
          return jobRunner.getCrossVMHook().map(hook -> {
              final Method hookMethod = findHookMethod(hook, "hookBeginning");
              arrangeHookThreadCacheContext();
              jobRunner.getAccessContextArranger().ifPresent(arranger -> { // for DB control
                  arrangeHookPreparedAccessContext(arranger, hook, hookMethod, job);
              });
              arrangeHookCallbackContext(hook, hookMethod, job);
              try {
                  showCrossVMBeginning(job, hook);
                  return hook.hookBeginning(job, runningState.getBeginTime().get()); // already begun here
              } finally {
                  clearHookCallbackContext();
                  clearHookPreparedAccessContext();
                  clearHookThreadCacheContext();
              }
          });
      }