protected void setField(Object object, String fieldName, Object value) { try { Field declaredField = object.getClass().getDeclaredField(fieldName); if ( !declaredField.isAccessible() ) declaredField.setAccessible(true); declaredField.set(object, value); } catch (Exception e) { throw new IllegalArgumentException("could not set field value: " + fieldName, e); } }
private void initMembers(Class<?> clazz, Context applicationContext) { ... List<Field> selectionFields = new ArrayList<Field>(); for (;clazz!=Object.class; clazz = clazz.getSuperclass()) { ... for (Field field: clazz.getDeclaredFields()) { } }
setField((Superclass) bean, "x", value); ;)
My workaround dont work. The patch for this method is attached to jira
http://jira.jboss.org/jira/browse/JBSEAM-846