code: private Field[] getAllInstanceFields(final Object obj) {
  		Field[] fields = instanceFieldsByClass.get(obj.getClass());
  
  		if (fields == null) {
  			List<Field> fieldList = ReflectionUtil.
  					getAllFields(obj, excludeStatic, excludeTransient);
  			fields = fieldList.toArray(new Field[fieldList.size()]);
  
  			instanceFieldsByClass.put(obj.getClass(), fields);
  		}
  
  		return fields;
  	}
docs: Retrieves all the instance fields for the given object.
  
  @param obj the object to examine
  @return an array of instance fields for the given object