Thanks Simon. I think I have all the test jar files that might be needed: appengine-testing.jar appengine-api.jar appengine-api-labs.jar appengine-api-stubs.jar appengine-local-runtime.jar
The same failure happens in development mode too in which no test jar files are needed. Any more hints appreciated. Arnold. On Aug 27, 11:41 am, Simon <qila...@gmail.com> wrote: > Check to make sure you have all of the test Jar files in your > classpath - I remember having this error and I was missing one of them > (can't remember which one I'm afraid...) > > On Aug 26, 10:38 pm, Arnold <arnold.mi...@gmail.com> wrote: > > > > > When using JDO persistence manager to begin a transaction, > > DatastoreService().getCurrentTransaction() seems to fail. > > > A unit test: > > ---------------------------------------------------------- > > public class TransactionTest{ > > private final LocalServiceTestHelper helper = > > new LocalServiceTestHelper(new > > LocalDatastoreServiceTestConfig()); > > > @Before > > public void setUp() { > > helper.setUp(); > > } > > > @After > > public void tearDown() { > > helper.tearDown(); > > } > > > @Test > > public void test(){ > > PersistenceManager pm = PMF.get().getPersistenceManager(); > > Transaction tx = pm.currentTransaction(); > > try{ > > tx.begin(); > > > DatastoreServiceFactory.getDatastoreService().getCurrentTransaction(); > > > tx.commit(); > > }finally{ > > if(pm.currentTransaction().isActive()){ > > pm.currentTransaction().rollback(); > > } > > pm.close(); > > } > > > }} > > > ---------------------------------------------------------- > > > The test fails with stack trace: > > ---------------------------------------------------------- > > java.lang.IllegalStateException: java.util.NoSuchElementException > > at > > com.google.appengine.api.datastore.TransactionStackImpl.peek(TransactionSta > > ckImpl.java: > > 70) > > at > > com.google.appengine.api.datastore.DatastoreServiceImpl.getCurrentTransacti > > on(DatastoreServiceImpl.java: > > 307) > > at TransactionTest.test(TransactionTest.java:37) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: > > 39) > > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp > > l.java: > > 25) > > at java.lang.reflect.Method.invoke(Method.java:597) > > at org.junit.runners.model.FrameworkMethod > > $1.runReflectiveCall(FrameworkMethod.java:44) > > at > > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable. > > java: > > 15) > > at > > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.j > > ava: > > 41) > > at > > org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.ja > > va: > > 20) > > at > > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java: > > 28) > > at > > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java: > > 31) > > at > > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.ja > > va: > > 73) > > at > > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.ja > > va: > > 46) > > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180) > > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41) > > at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173) > > at > > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java: > > 28) > > at > > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java: > > 31) > > at org.junit.runners.ParentRunner.run(ParentRunner.java:220) > > at > > org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestRe > > ference.java: > > 46) > > at > > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java: > > 38) > > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR > > unner.java: > > 467) > > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR > > unner.java: > > 683) > > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner > > .java: > > 390) > > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunne > > r.java: > > 197) > > Caused by: java.util.NoSuchElementException > > at java.util.LinkedList.getFirst(LinkedList.java:109) > > at > > com.google.appengine.api.datastore.TransactionStackImpl.peek(TransactionSta > > ckImpl.java: > > 68) > > ... 26 more > > > ---------------------------------------------------------- > > > As a result, the example shown here: > > >http://code.google.com/appengine/docs/java/taskqueue/overview.html#Ta... > > > does not work. > > > Can someone help shade some light on what I may be missing? > > > Thanks. -- 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.