[appengine-java] Persisting and deleting objects using same PersistanceManager

2011-02-27 Thread Tadas Šubonis
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?

2011-01-03 Thread Tadas Šubonis
)
  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.