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
-~----------~----~----~----~------~----~------~--~---

Reply via email to