private Object getValueOfProperty(Object o, Method method, Field field) {
		// read!
		Object value = null;
		try {
			method.setAccessible(true);
			value = method.invoke(o, new Object[] {});
		} catch (IllegalArgumentException e) {
		} catch (IllegalAccessException e) {
		} catch (InvocationTargetException e) {
		}

		// read from property directly if the value
		// is still null
		if (value == null) {
			if (field != null) {
				try {
					field.setAccessible(true);
					value = field.get(o);
				} catch (IllegalArgumentException e) {
				} catch (IllegalAccessException e) {
				}
			}
		}

		return value;
	}