code: @Override
      public OptionalThing<? extends Object> prepareDynamicData(SMailDynamicDataResource resource) {
          final boolean exists = ThreadCacheContext.exists();
          final String cacheKey = exists ? generateDataCacheKey(resource) : null;
          if (exists) {
              final Object cached = ThreadCacheContext.getObject(cacheKey);
              if (cached != null) {
                  return OptionalThing.ofNullable(!cached.equals(NONE) ? cached : null, () -> {
                      throw new IllegalStateException("Not found the dynamic data: " + resource);
                  });
              }
          }
          final OptionalThing<? extends Object> assisted = loadDynamicData(resource);
          if (exists) {
              assisted.ifPresent(dynamicData -> {
                  ThreadCacheContext.setObject(cacheKey, dynamicData);
              }).orElse(() -> {
                  ThreadCacheContext.setObject(cacheKey, NONE); // also cache not-found
              });
              return assisted;
          } else {
              return assisted;
          }
      }
docs: ============