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.