code: public static void pushCurrentThreadValidationContext(Supplier<String> supplier) {
      Stack<Supplier<String>> stack = contextLocal.get();
      if (stack == null) {
        stack = new Stack<>();
        contextLocal.set(stack);
      }
      stack.push(supplier);
    }
docs: Sets the validation context description. Each thread has its own description, so
  this is thread safe.