Thanks for the reply Enes.
The problem with doing what you're suggesting is that there doesn't seem to be a way to do it in a generic way. Basically all my code would have to be prepared with a copy of the old value so it could be restored in case of an error, and I can't think of any other way but to write a specific rollback code on a case-by-case basis. And the old value returned along with the error could become complex if multiple fields were to be modified before the Exception was thrown.
A perfect old value would be a full clone of it - by that's precisely what we're trying to avoid while running the EntryProcessor in OBJECT mode.
I suggested copying the value from the backup because that could eliminate any needs to write code to deal with such a value rollback. And also, the backup is just sitting there, so why not just access it?
Of course one could keep in mind that OBJECT in-memory format has this extra risk associated with it, and be extra careful before applying changes to the objects. However modifying multiple fields will never be an atomic operation and there's always a risk involved.
But you mentioned there's no easy way to replicate from the backup - does it mean there's a hard way to do it? I wouldn't mind, as long as it's possible to get that value :)
If there's a hard way, could point me where to look?
Thanks again.