code: public synchronized String set(String value)
      {
          final String prevValue = super.set(value);
  
          if (!storageInitialized) {
              storageInitialized = true;
  
              if (propertyFileLocation.get() == null) {
                  tracer.warning(
                      "Cannot store property '" + getPath()
                      + "' because storage location is not set");
                  return prevValue;
              }
              try {
                  storage =
                      PersistentPropertyStorage.newPersistentPropertyStorage(
                          propertyFileLocation.get());
              } catch (IOException e) {
                  tracer.warning(
                      "Unable to initialize persistent property storage for '"
                      + getPath() + "'");
                  tracer.throwing("PersistentPropertyStorage", "<init>", e);
                  return prevValue;
              }
          }
  
          if (storage != null) {
              try {
                  storage.storeProperty(this);
              } catch (IOException e) {
                  tracer.warning(
                      "Unable to persist property '" + getPath() + "'");
                  tracer.throwing("PersistentPropertyStorage", "set(String)", e);
              }
          }
          return prevValue;
      }
docs: Sets the value of this property.
  
  <p>This method is synchronized to prevent multiple threads from
  attempting to initialize the property storage ({@link #storage})
  simultaneously.</p>
  
  @return The previous value, or the default value if not set.