code: public static <T> VicariousThreadLocal<T> newThreadLocal(final java.util.concurrent.Callable<T> doCall) {
          return new VicariousThreadLocal<T>() {
              @Override
              public T initialValue() {
                  try {
                      return doCall.call();
                  } catch (RuntimeException exc) {
                      throw exc;
                  } catch (Exception exc) {
                      throw new Error(exc);
                  }
              }
          };
      }
docs: Creates a new {@code VicariousThreadLocal} with initial value from {@code Callable}.