public Object getValue(Object obj,String propName) {
		Object val = null;
		PropInfo propInfo = propInfoByPropName.get(propName);
		if (propInfo != null){
			Method readMethod = propInfo.getReadMethod();
			if (readMethod == null){
				throw new RuntimeException(format("propName %s does not not have readMethod",propName));
			}
			try {
				val = readMethod.invoke(obj);
			} catch (Throwable e) {
				throw new RuntimeException(format("Error while calling read method %s for property %s on object %s", readMethod.getName(), propName, obj) + "\n" + e,e);
			}
		}
		return val;
	}