Google应用引擎数据存储区事务提交会引发InterruptedException

时间:2013-02-25 10:47:48

标签: java google-app-engine google-cloud-datastore

任何想法?我们同时使用其他前端线程,所以我想知道这是否与某种程度有关。

java.lang.InterruptedException
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1038)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1326)
at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:275)
at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:96)
at com.google.appengine.tools.development.TimedFuture.get(TimedFuture.java:41)
at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63)
at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:86)
at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:86)
at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:86)
at com.google.appengine.api.datastore.FutureHelper.getInternal(FutureHelper.java:71)
at com.google.appengine.api.datastore.FutureHelper.quietGet(FutureHelper.java:32)
at com.google.appengine.api.datastore.TransactionImpl.commit(TransactionImpl.java:110)
at org.gails.infrastructure.google.DatastoreGAE.commitTransaction(DatastoreGAE.java:261)

还报告了http://code.google.com/p/googleappengine/issues/detail?id=8873&thanks=8873&ts=1361788757

1 个答案:

答案 0 :(得分:0)

“当前事务”是线程本地的。如果您在并行线程中执行事务,那么在使用.getCurrentTransaction()时要小心。有关详细信息,请参阅文档:https://developers.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/DatastoreService#beginTransaction()