} else {
throw new PropertyPermissionException(propertyName, node.getPath(), obj.getClass(), "Unsupported collection/map type used");
}
} else {
try {
property.addOrSet(obj, value);
} catch (InvocationTargetException e) {
Throwable t = e;
// this generally means the setXXXX method on the object
// threw an exception -- we want to unwrap that and just
// return that exception instead