docs: private Object getPropertyValue(HashMap<String, PropertyDescriptor> proDscMap, Object oldInstance, String propName) throws Exception
  	{
  		// Try to get the read method for the property
  		Method getter = null;
  		if (null != proDscMap)
  		{
  			PropertyDescriptor pd = proDscMap.get(Introspector.decapitalize(propName));
  			if (null != pd)
  			{
  				getter = pd.getReadMethod();
  			}
  		}
  
  		// Invoke read method to get the value if found
  		if (null != getter)
  		{
  			return getter.invoke(oldInstance, (Object[]) null);
  		}
  
  		// Otherwise, try to access the field directly
  		try
  		{
  			return getFieldValue(oldInstance, propName);
  		}
  		catch (Exception ex)
  		{
  			// Fail, throw an exception
  			throw new NoSuchMethodException("The getter method for the property " //$NON-NLS-1$
  					+ propName + " can't be found."); //$NON-NLS-1$
  		}
  	}