if (preferenceListeners != null) fire(new PreferenceChangeEvent(this, key, value));
	public void put(String key, String value) {        if (key.length() > MAX_KEY_LENGTH            || value.length() > MAX_VALUE_LENGTH)            throw new IllegalArgumentException("key ("                                               + key.length() + ")"                                               + " or value ("                                               + value.length() + ")"                                               + " to large");        synchronized(lock) {			if (isRemoved())				throw new IllegalStateException("Node removed");			putSpi(key, value);			// XXX - fire events		}	}