public static void setFieldValue(Object o, String fieldName, Object fieldValue) throws IllegalAccessException {
public static void setFieldValue(Object o, String fieldName, Object fieldValue) {
    public static void setFieldValue(Object o, String fieldName, Object fieldValue)        throws IllegalAccessException {        try {            if (fieldValue instanceof ProxyReference) {                getProxySetter(o.getClass(), fieldName).invoke(o, new Object[] {fieldValue});            } else {                getSetter(o.getClass(), fieldName).invoke(o, new Object[] {fieldValue});            }        } catch (Exception e) {            String type = null;            try {                type = getFieldInfo(o.getClass(), fieldName).getGetter().getReturnType().getName();            } catch (Exception e3) {            }            IllegalArgumentException e2 = new IllegalArgumentException("Couldn't set field \""                    + DynamicUtil.decomposeClass(o.getClass()) + "." + fieldName + "\""                    + (type == null ? "" : " (a " + type + ")")                    + " to \"" + fieldValue + "\" (a " + fieldValue.getClass().getName() + ")");            e2.initCause(e);            throw e2;        }    }