code: public synchronized Object setProperty(String key, String value) {
          if (key == null || value == null)
              throw new NullPointerException();
          Entry entry = props.get(key);
          if (entry == null) {
              entry = new Entry("", value);
              props.put(key, entry);
              return null;
          } else {
              String result = entry.getValue();
              entry.setValue(value);
              return result;
          }
      }
docs: Calls the <tt>Hashtable</tt> method <code>put</code>. Provided for
  parallelism with the <tt>getProperty</tt> method. Enforces use of
  strings for property keys and values. The value returned is the
  result of the <tt>Hashtable</tt> call to <code>put</code>.
  
  @param key the key to be placed into this property list.
  @param value the value corresponding to <tt>key</tt>.
  @return     the previous value of the specified key in this property
  list, or <code>null</code> if it did not have one.
  @see #getProperty
  @since    1.2