I noticed that BeanUtils.copyProperties(dest, src) has a strange side effect. All null Integers (probably Long, Date etc. too) convert to 0 in both objects: source (sic!) and destination. Version: commons-beanutils-1.7.0
javadoc:
Copy property values from the origin bean to the destination bean for
all cases where the property names are the same.
For example:
class User {
Integer age = null;
// getters & setters
}
...
User userDest = new User();
User userSrc = new User();
BeanUtils.copyProperties(userDest, userSrc);
System.out.println(userDest.getAge()); // 0
System.out.println(userSrc.getAge()); // 0
It can be very buggy that source object is actually modified. What is the best solution to make “real” copy of object with null value.
Ok I’ve found this post
Automatic conversion is not necessary in this case, so better choice is
PropertyUtilsclass