code: public void process(ActionExecute execute, RequestPathParam pathParam) throws IOException, ServletException {
          // initializing and clearing thread cache here so you can use thread cache in your action execute
          final boolean exists = ThreadCacheContext.exists();
          try {
              if (!exists) { // inherits existing cache when nested call e.g. forward
                  ThreadCacheContext.initialize();
              }
              final ActionRuntime runtime = createActionRuntime(execute, pathParam);
              beforeFire();
              try {
                  fire(runtime); // #to_action
              } catch (RuntimeException | IOException | ServletException e) {
                  catchFire(e);
                  throw e;
              } finally {
                  finallyFire(runtime);
              }
          } finally {
              if (!exists) {
                  ThreadCacheContext.clear();
              }
          }
      }
docs: =======