title: BeanUtils.copyProperties convert Integer null to 0
body: <p>I noticed that BeanUtils.copyProperties(dest, src) has a strange side effect. All null <code>Integers</code> (probably <code>Long</code>, <code>Date</code> etc. too) convert to 0 in both objects: source (sic!) and destination. Version: commons-beanutils-1.7.0</p>
  
  <p>javadoc:</p>
  
  <blockquote>
    <p>Copy property values from the origin bean to the destination bean for
    all cases where the property names are the same.</p>
  </blockquote>
  
  <p>For example:</p>
  
  <pre><code>class User {
     Integer age = null;
     // getters &amp; 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
  </code></pre>
  
  <p>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. </p>