code: public static Class<?> getUserClass(Object instance) {
  		Assert.notNull(instance, "Instance must not be null");
  		return getUserClass(instance.getClass());
  	}
docs: Return the user-defined class for the given instance: usually simply
  the class of the given instance, but the original class in case of a
  CGLIB-generated subclass.
  @param instance the instance to check
  @return the user-defined class