Jason,
Thanks for the reply and checking the code. It is the null issue that is
causing this issue, but I had a second issue that I will start a new thread
for.
Thanks,
Jeff
On Fri, Oct 23, 2009 at 4:01 PM, Jason (Google) wrote:
> Hi Jeff. I'm having trouble reproducing this. I kept everything uncommented
> so the constructor adds a new object to each List/Set, then queried for the
> persisted Player2 object and inspected the size of each List/Set and saw 1
> for each (expected). I then commented out foo1 and foo2 but left the
> Lists/Sets uncommented and saw the same result.
>
> There is a known issue where empty Lists (Lists which have been
> instantiated but don't have any objects in them) are returned as null. Does
> this sound like what you're running into when you leave the constructor
> commented out?
>
> - Jason
>
> On Thu, Oct 22, 2009 at 12:05 PM, jeffgnpc wrote:
>
>>
>> I am having an issue loading Collections after they have been stored
>> in the datastore. I have simplified this issue down to a simple
>> example listed below. If I run with the current comments, everything
>> works fine, and the Collections are loaded. If I uncomment "foo1" or
>> "foo2", the Collections no longer load (they are null). If I
>> uncomment the constructor where I add values to the list, everything
>> works fine again.
>>
>> @PersistenceCapable(identityType = IdentityType.APPLICATION)
>> public class Player2 {
>>@PrimaryKey
>>@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
>>public Long key;
>>
>>//@Persistent
>>//private Long foo1; //Cause Collection issue
>>//@Persistent
>>//private String foo2; //Causes Collection issue
>>@Persistent
>>private Key foo3; // This works
>>
>>@Persistent(defaultFetchGroup = "true")
>>private Set longSet = new HashSet();
>>@Persistent(defaultFetchGroup = "true")
>>private List longList = new ArrayList();
>>@Persistent(defaultFetchGroup = "true")
>>private Set stringSet = new HashSet();
>>@Persistent(defaultFetchGroup = "true")
>>private List stringList = new LinkedList();
>>@Persistent(defaultFetchGroup = "true")
>>private Set keySet = new HashSet();
>>@Persistent(defaultFetchGroup = "true")
>>private List keyList = new LinkedList();
>>
>>public Player2() {
>>//Adding to the List Fixes Collection issue
>>//longSet.add(1234l);
>>//longList.add(1234l);
>>//stringSet.add("1234l");
>>//stringList.add("1234l");
>>//keySet.add(KeyFactory.createKey(Player2.class.getSimpleName
>> (), "alfred.sm...@example.com"));
>>//keyList.add(KeyFactory.createKey(Player2.class.getSimpleName
>> (), "alfred.sm...@example.com"));
>>}
>> }
>>
>>
>> I believe this might be a similar issue to this thread:
>>
>> http://groups.google.com/group/google-appengine-java/browse_thread/thread/a44cb049f40d6bab/f9047e0a25e3453f?lnk=gst&q=JDO+collection+null#f9047e0a25e3453f
>>
>> But when I run with in either of the successful ways, the Collections
>> don't seem to be SCO fields. I will also post in that thread in case
>> it helps with the ticket.
>>
>> Thanks,
>> Jeff
>>
>>
>
> >
>
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---