Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
3.2.M1
-
None
Description
Say you have a postLoad callback on an entity that calls a setter on the object, for example:
public void publicCallback(Object entity) {
Artist a = (Artist)entity;
a.setArtistName("Changed");
}
This works if you fetch the object directly with a SelectQuery. But if you fault in the object through a relationship it will call BaseContext.prepareForAccess which has this:
// sanity check...
if (object.getPersistenceState() != PersistenceState.COMMITTED)
Since the object is modified (not committed) an exception is thrown. It is valid to allow mutating an object during postLoad.