[appengine-java] Persisting and deleting objects using same PersistanceManager
Hi, I have this test (I am creating object, persist it and trying to remove it) and it is failing on fail(not supposed to get here); line. Is it bug in GAE JDO or JDO is supposed to work in this way? private final LocalServiceTestHelper helper = new LocalServiceTestHelper( new LocalDatastoreServiceTestConfig()); @Before public void setUp() { helper.setUp(); } @After public void tearDown() { helper.tearDown(); } @Test public void testBasicDelete() { Properties newProperties = new Properties(); newProperties .put(javax.jdo.PersistenceManagerFactoryClass, org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory); newProperties.put(javax.jdo.option.ConnectionURL, appengine); newProperties.put(javax.jdo.option.NontransactionalRead, true); newProperties.put(javax.jdo.option.NontransactionalWrite, true); newProperties.put(javax.jdo.option.RetainValues, true); newProperties.put(datanucleus.appengine.autoCreateDatastoreTxns, true); newProperties.put(datanucleus.appengine.autoCreateDatastoreTxns, true); PersistenceManagerFactory pmf = JDOHelper .getPersistenceManagerFactory(newProperties); PersistenceManager pm = pmf.getPersistenceManager(); JDOMockBasicObject m = new JDOMockBasicObject(); pm.makePersistent(m); long id = m.getId(); assertTrue(id 0); JDOMockBasicObject k = (JDOMockBasicObject) pm.getObjectById( JDOMockBasicObject.class, id); pm.deletePersistent(k); Query query = pm.newQuery(JDOMockBasicObject.class); query.setFilter(key == k); query.declareParameters(com.google.appengine.api.datastore.Key k); query.deletePersistentAll(k.getKey()); try { JDOMockBasicObject l = (JDOMockBasicObject) pm.getObjectById( JDOMockBasicObject.class, id); fail(not supposed to get here); } catch (JDOObjectNotFoundException e) { } } // Mock class: import javax.jdo.annotations.IdGeneratorStrategy; import javax.jdo.annotations.PersistenceCapable; import javax.jdo.annotations.Persistent; import javax.jdo.annotations.PrimaryKey; import com.google.appengine.api.datastore.Key; @PersistenceCapable public class JDOMockBasicObject { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Key key; public Long getId(){ return key.getId(); } public Key getKey(){ return key; } } -- 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.
Re: [appengine-java] Re: How to identify cause of this error?
) at org.datanucleus.jdo.JDOPersistenceManager.makePersistent( JDOPersistenceManager.java:694) at com.dblog.server.blog.Controller.newAction(Controller.java:75) ... 34 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance( NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance( DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.google.appengine.tools.development.agent.runtime.Runtime. newInstance_(Runtime.java:112) at com.google.appengine.tools.development.agent.runtime.Runtime. newInstance(Runtime.java:120) at org.datanucleus.plugin.NonManagedPluginRegistry. createExecutableExtension(NonManagedPluginRegistry.j ava:572) at org.datanucleus.store.appengine.DatastorePluginRegistry. createExecutableExtension(DatastorePluginReg istry.java:124) at org.datanucleus.plugin.PluginManager.createExecutableExtension( PluginManager.java:324) at org.datanucleus.OMFContext.getMetaDataManager(OMFContext.java:469 ) at org.datanucleus.ObjectManagerImpl.getMetaDataManager( ObjectManagerImpl.java:407) at org.datanucleus.ObjectManagerImpl. hasPersistenceInformationForClass(ObjectManagerImpl.java:3974) at org.datanucleus.ObjectManagerImpl.assertClassPersistable( ObjectManagerImpl.java:3892) at org.datanucleus.ObjectManagerImpl.persistObjectInternal( ObjectManagerImpl.java:1240) at org.datanucleus.ObjectManagerImpl.persistObject(ObjectManagerImpl .java:1175) at org.datanucleus.jdo.JDOPersistenceManager.jdoMakePersistent( JDOPersistenceManager.java:669) ... 36 more Caused by: java.lang.NullPointerException at org.datanucleus.store.appengine.jdo.DatastoreJDOMetaDataManager. shouldBeInDefaultFetchGroup(Datastor eJDOMetaDataManager.java:167) at org.datanucleus.store.appengine.jdo.DatastoreJDOMetaDataManager. shouldBeInDefaultFetchGroup(Datastor eJDOMetaDataManager.java:167) at org.datanucleus.store.appengine.jdo.DatastoreJDOMetaDataManager. populateAbstractClassMetaData(Datast oreJDOMetaDataManager.java:153) at org.datanucleus.metadata.MetaDataManager.populateFileMetaData( MetaDataManager.java:2148) at org.datanucleus.metadata.MetaDataManager.loadAnnotationsForClass( MetaDataManager.java:2289) at org.datanucleus.jdo.metadata.JDOMetaDataManager. getMetaDataForClassInternal(JDOMetaDataManager.java: 369) at org.datanucleus.jdo.metadata. JDOMetaDataManager$MetaDataRegisterClassListener.registerClass( JDOMetaDataManager.java:184) at javax.jdo.spi.JDOImplHelper.addRegisterClassListener( JDOImplHelper.java:462) at org.datanucleus.jdo.metadata.JDOMetaDataManager.init( JDOMetaDataManager.java:171) at org.datanucleus.store.appengine.jdo.DatastoreJDOMetaDataManager. init(DatastoreJDOMetaDataManager.java:136) ... 52 more -- 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.comgoogle-appengine-java%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- 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.comgoogle-appengine-java%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- Pagarbiai, Tadas Šubonis -- 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.