It\'s a bit difficult to implement a deep object copy function. What steps you take to ensure the original object and the cloned one share no reference?
I used Dozer for cloning java objects and it's great at that , Kryo library is another great alternative.