code: private T setInitialValue() {
          T value = initialValue();
          Thread t = Thread.currentThread();
          ThreadLocalMap map = getMap(t);
          if (map != null)
              map.set(this, value);
          else
              createMap(t, value);
          return value;
      }
docs: Variant of set() to establish initialValue. Used instead
  of set() in case user has overridden the set() method.
  
  @return the initial value