cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John Huss (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CAY-1832) Exception when modifying objects in postLoad callback
Date Tue, 04 Jun 2013 21:21:21 GMT
John Huss created CAY-1832:
------------------------------

             Summary: Exception when modifying objects in postLoad callback
                 Key: CAY-1832
                 URL: https://issues.apache.org/jira/browse/CAY-1832
             Project: Cayenne
          Issue Type: Bug
          Components: Core Library
    Affects Versions: 3.2M1
            Reporter: John Huss
            Assignee: John Huss
            Priority: Minor
             Fix For: 3.2M1


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) {

                String state = PersistenceState.persistenceStateName(object
                        .getPersistenceState());

                // TODO: andrus 4/13/2006, modified and deleted states are possible due to
                // a race condition, should we handle them here?

                throw new FaultFailureException(...
            }

Since the object is modified (not committed) an exception is thrown.  It is valid to allow
mutating an object during postLoad.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message