car2.setName("myName");
List<Car> vehicles = newInstance(ArrayList.class);
vehicles.add(car2);
tro.setVehicles(vehicles);
TestReferenceObject toClone = (TestReferenceObject) SerializationUtils.clone(tro);
TestReferencePrimeObject trop = mapper.map(tro, TestReferencePrimeObject.class);
assertEquals("myName", (trop.getVans()[0]).getName());
assertEquals("myName", (trop.getMoreVans()[0]).getName());
TestReferenceFooPrime fooPrime = (TestReferenceFooPrime) trop.getListAPrime().get(0);
fooPrime.setB("b");
TestReferenceFooPrime fooPrime2 = (TestReferenceFooPrime) trop.getArrayToArrayNoncumulative()[0];
fooPrime2.setB("b");
mapper.map(trop, tro);
// make sure we update the array list and didnt lose the value 'c' - non-cumulative
assertEquals("c", ((TestReferenceFoo) tro.getListA().get(0)).getC());
assertEquals("c", ((TestReferenceFoo) tro.getArrayToArrayNoncumulative()[0]).getC());