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.

Reply via email to