I have a Room class containing a list of Presence classes. Here are
the annotations.

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Room {
  private final static Logger LOG =
Logger.getLogger(Room.class.getName());

  @PrimaryKey
  @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
  private Key key;

  @Persistent
  private Key creatorKey;

  @Persistent
  private String name;

  @Persistent(mappedBy = "room")
  @Element(dependent = "true")
  private List<Presence> presences;

...

}


@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Presence {
  @SuppressWarnings("unused")
  @PrimaryKey
  @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
  private Key key;

  @Persistent
  private Key userKey;

  @SuppressWarnings("unused")
  @Persistent
  private Room room;

  @Persistent
  private long lastAccessMs = 0;

...

}

I'm getting an error when I remove multiple entries from presences via
removeAll. Here's the stack trace. I see this error only on the live
site, not on a local build.

com.google.appengine.api.datastore.DatastoreNeedIndexException: no
matching index found..      <datastore-index kind="Presence"
ancestor="true" source="manual">
        <property name="__key__" direction="desc"/>
    </datastore-index>


        at
com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:
39)
        at
com.google.appengine.api.datastore.DatastoreApiHelper.makeSyncCall(DatastoreApiHelper.java:
60)
        at
com.google.appengine.api.datastore.PreparedQueryImpl.runQuery(PreparedQueryImpl.java:
115)
        at
com.google.appengine.api.datastore.PreparedQueryImpl.asIterator(PreparedQueryImpl.java:
81)
        at com.google.appengine.api.datastore.BasePreparedQuery
$1.iterator(BasePreparedQuery.java:25)
        at
org.datanucleus.store.appengine.DatastoreAbstractListStoreSpecialization.getIndicesOf(DatastoreAbstractListStoreSpecialization.java:
124)
        at
org.datanucleus.store.mapped.scostore.AbstractListStore.getIndicesOf(AbstractListStore.java:
393)
        at
org.datanucleus.store.mapped.scostore.AbstractListStore.removeAll(AbstractListStore.java:
232)
        at org.datanucleus.sco.backed.List.removeAll(List.java:957)
        at com.honkentuber.chat.Room.updatePresence(Room.java:97)
        at
com.honkentuber.chat.ChatDatabase.storeAndFetchMessages(ChatDatabase.java:
212)
        at com.honkentuber.chat.ChatServlet.newJspResponse(ChatServlet.java:
36)

-- 
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-j...@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