code: @Override
  	public String getProperty(final String key) {
  		lock.readLock().lock();
  		try {
  			final boolean useLocalPrefixes = !mixDefaultAndLocalPrefixes && hasLocalPrefixConfigurations();
  			final Object object = get(key, useLocalPrefixes);
  			if (object instanceof String) {
  				return (String) object;
  			} else {
  				if (object == null) {
  					return null;
  				}
  				throw new IllegalStateException("The value of " + key + " is of type: " + object.getClass().getName());
  			}
  		} finally {
  			lock.readLock().unlock();
  		}
  	}
docs: Gets the property.
  
  @param key
  the key
  
  @return the property