chainedPet2.addDelegate(mpet1);
assertSame("Should translate differently due to ordering",
out2, DataAccessUtils.translateIfNecessary(in1, chainedPet2));
RuntimeException in2 = new RuntimeException("in2");
OptimisticLockingFailureException out3 = new OptimisticLockingFailureException("out2");
assertNull(chainedPet2.translateExceptionIfPossible(in2));
MapPersistenceExceptionTranslator mpet3 = new MapPersistenceExceptionTranslator();
mpet3.addTranslation(in2, out3);
chainedPet2.addDelegate(mpet3);
assertSame(out3, chainedPet2.translateExceptionIfPossible(in2));