code: @Override
  	protected boolean mutatesTo(Object o1, Object o2)
  	{
  		if (this.propertyNames.length > 0)
  		{
  			if (BeansUtils.declaredEquals(o1.getClass()))
  			{
  				return o1.equals(o2);
  			}
  		}
  		return super.mutatesTo(o1, o2);
  	}
docs: Determines whether one object mutates to the other object. If this <code>DefaultPersistenceDelegate</code> is constructed with one or more property
  names, and the class of <code>o1</code> overrides the "equals(Object)" method, then <code>o2</code> is considered to mutate to <code>o1</code> if
  <code>o1</code> equals to <code>o2</code>. Otherwise, the result is the same as the definition in <code>PersistenceDelegate</code>.
  
  @param o1
  one object
  @param o2
  the other object
  @return true if second object mutates to the first object, otherwise false