code: protected String getInternal(
          String defaultValue,
          boolean required)
      {
          String value = properties.getProperty(path, defaultValue);
          if (value != null) {
              return value;
          }
          if (defaultValue == null) {
              value = getDefaultValue();
              if (value != null) {
                  return value;
              }
          }
          if (required) {
              throw new RuntimeException("Property " + path + " must be set");
          }
          return value;
      }
docs: Retrieves the value of a property, using a given default value, and
  optionally failing if there is no value.