public T getValue() {
    T value = com.intellij.reference.SoftReference.dereference(myThreadLocal.get());
    if (value == null) {
      value = create();
      myThreadLocal.set(new SoftReference<>(value));
    }
    else {
      init(value);
    }
    return value;
  }
public T getValue()