I think it makes sense now. I did see more exceptions related to incorrect transaction handling (e.g. updating multiple entities from different entity groups) that didn't happen prior to 1.2.5. It seems that it was the upgrade to datanucleus 1.1.5 that triggered these exceptions. I am not suggesting that 1.1.5 introduced bugs (but neither denying it). I think it was my code that relied on a previous bug that got fixed in 1.1.5. Actually I do not require transactions at this point at all and in the future expect them to be an exception rather than the norm, so I disabled them and the application is now running as expected.
Thanks, Yegor On Sep 6, 11:08 am, Max Ross <maxr+appeng...@google.com> wrote: > It shouldn't be inconsistent. The field will only be unavailable outside > the transaction if it was not accessed inside the transaction, so that might > explain why it only happens in certain places. > > > > On Sat, Sep 5, 2009 at 11:55 PM, bgood <ben.mcgee.g...@gmail.com> wrote: > > > OK, but why would this behavior be happening inconsistently across his > > (and probably others) application? > > > On Sep 5, 7:06 pm, Max Ross > > <maxr+appeng...@google.com<maxr%2bappeng...@google.com>> > > wrote: > > > Key is not in the default fetch group because it is an appengine-specific > > > class. The JDO spec doesn't know anything about app engine so there's no > > > way that Key could be included in the list of types that are > > automatically > > > included in the default fetch group. > > > > Max > > > > On Fri, Sep 4, 2009 at 1:32 PM, Yegor <yegor.jba...@gmail.com> wrote: > > > > > Just so you know, I think I have solved the problem by setting > > > > defaultFetchGroup="true" on the Key property: > > > > > @Persistent(defaultFetchGroup="true") > > > > private Key text; > > > > > Might have something to do with the recently closed issue #58 "Queries > > > > don't respect fetch groups": > > > >http://code.google.com/p/datanucleus-appengine/issues/detail?id=58 > > > > > What's puzzling is that I have unowned relationships all over the > > > > application, however only one class - CMSPage - fails to retrieve the > > > > Key properties. > > > > > I am not sure why Key is not automatically in the default fetch group. > > > > Key is not an entity class. It should be ok to fetch it non-lazily by > > > > default. > > > > > Yegor > > > > > On Sep 4, 1:21 pm, Yegor <yegor.jba...@gmail.com> wrote: > > > > > Hi, > > > > > > I am experiencing a problem after upgrading to Java SDK 1.2.5. In a > > > > > simple CMS application a page is stored as a CMSPage entity, which > > > > > points to its text saved as a DetachedText entity using a Key > > property > > > > > (i.e. an unowned relationship) as follows: > > > > > > @PersistenceCapable(identityType = IdentityType.APPLICATION) > > > > > public class CMSPage { > > > > > > @PrimaryKey > > > > > @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) > > > > > private Key id; > > > > > > @Persistent > > > > > private Key text; > > > > > > public Key getId() { > > > > > return id; > > > > > } > > > > > > public void setId(Key id) { > > > > > this.id = id; > > > > > } > > > > > > public Key getText() { > > > > > return text; > > > > > } > > > > > > public void setText(Key text) { > > > > > this.text = text; > > > > > } > > > > > > } > > > > > > The Key property "text" points to: > > > > > > @PersistenceCapable(identityType = IdentityType.APPLICATION) > > > > > public class DetachedText { > > > > > > @PrimaryKey > > > > > @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) > > > > > private Key id; > > > > > > @Persistent > > > > > private Text content; > > > > > > public DetachedText(Text content) { > > > > > this.content = content; > > > > > } > > > > > > public Key getId() { > > > > > return id; > > > > > } > > > > > > public Text getContent() { > > > > > return content; > > > > > } > > > > > > } > > > > > > NOTE: I have removed other properties and code that I found unrelated > > > > > to the problem > > > > > > After saving the page I can see the "text" field populated in the > > > > > development console. The value shows as "DetachedText(5)". I also > > > > > verified that the DetachedText entity exists and its ID equals 5. > > > > > > However, after I retrieve CMSPage from the datastore using a > > > > > javax.jdo.Query the "text" field in the retrieved object is null > > (both > > > > > the Eclipse debugger and the application throwing NPE confirm it). > > > > > > What am I doing wrong? > > > > > > Any pointers will be appreciated. > > > > > > Thanks, > > > > > > Yegor --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to google-appengine-java@googlegroups.com To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en -~----------~----~----~----~------~----~------~--~---