Yes, it seems like we should be able to generate a better error message
here.

Can you file a bug in our issue tracker, please?

http://code.google.com/p/googleappengine/issues/list

Thanks,
Don

On Thu, Mar 18, 2010 at 4:42 PM, Mouseclicker <[email protected]>wrote:

> Hi,
>
> I am using the low level datastore API and suspect that there is a bug
> in the current implementation when deleting entities.
>
> If I call delete() with an array of keys and one or more of the keys
> does no longer exist this results in a very strange exception:
>
> com.google.appengine.api.datastore.DatastoreFailureException:
> Unexpected error, please try again
>
> The behavior is also different on the development server. Here I do
> not receive an exception at all.
>
> Getting no meaningful exception makes debugging such issues very hard
> and I suspect that this behavior is a bug. Is this possible?
>
> Here is the full stacktrace:
> Uncaught exception from servlet
> com.google.appengine.api.datastore.DatastoreFailureException:
> Unexpected error, please try again.
>        at
>
> com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:
> 46)
>        at
>
> com.google.appengine.api.datastore.DatastoreApiHelper.makeSyncCall(DatastoreApiHelper.java:
> 60)
>        at com.google.appengine.api.datastore.DatastoreServiceImpl
> $3.run(DatastoreServiceImpl.java:225)
>        at
>
> com.google.appengine.api.datastore.TransactionRunner.runInTransaction(TransactionRunner.java:
> 30)
>        at
>
> com.google.appengine.api.datastore.DatastoreServiceImpl.delete(DatastoreServiceImpl.java:
> 211)
>        at
>
> com.google.appengine.api.datastore.DatastoreServiceImpl.delete(DatastoreServiceImpl.java:
> 197)
>        at
>
> org.yodooga.repository.RepositoryAdmin.processDeleteTask(RepositoryAdmin.java:
> 114)
>        at org.yodooga.YoDooGAServlet.doPut(YoDooGAServlet.java:144)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:716)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
>        at
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
> 487)
>        at org.mortbay.jetty.servlet.ServletHandler
> $CachedChain.doFilter(ServletHandler.java:1093)
>        at
>
> com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:
> 97)
>        at org.mortbay.jetty.servlet.ServletHandler
> $CachedChain.doFilter(ServletHandler.java:1084)
>        at
>
> com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:
> 35)
>        at org.mortbay.jetty.servlet.ServletHandler
> $CachedChain.doFilter(ServletHandler.java:1084)
>        at
>
> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:
> 43)
>    at org.mortbay.jetty.servlet.ServletHandler
> $CachedChain.doFilter(ServletHandler.java:1084):
>        at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
> 360)
>        at
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
> 216)
>        at
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
> 181)
>        at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
> 712)
>        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
> 405)
>        at
>
> com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:
> 238)
>        at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
> 139)
>        at org.mortbay.jetty.Server.handle(Server.java:313)
>        at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
> 506)
>        at org.mortbay.jetty.HttpConnection
> $RequestHandler.headerComplete(HttpConnection.java:830)
>        at
>
> com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:
> 76)
>        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
>        at
>
> com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:
> 135)
>        at
> com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:
> 235)
>        at com.google.apphosting.base.RuntimePb$EvaluationRuntime
> $6.handleBlockingRequest(RuntimePb.java:5485)
>        at com.google.apphosting.base.RuntimePb$EvaluationRuntime
> $6.handleBlockingRequest(RuntimePb.java:5483)
>        at
>
> com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:
> 24)
>        at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:
> 363)
>        at com.google.net.rpc.impl.Server$2.run(Server.java:837)
>        at
> com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java:
> 56)
>        at
>
> com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java:
> 536)
>        at com.google.net.rpc.impl.Server.startRpc(Server.java:792)
>        at com.google.net.rpc.impl.Server.processRequest(Server.java:367)
>        at
>
> com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java:
> 448)
>        at
> com.google.net.rpc.impl.RpcConnection.parseMessages(RpcConnection.java:
> 319)
>        at
> com.google.net.rpc.impl.RpcConnection.dataReceived(RpcConnection.java:
> 290)
>        at com.google.net.async.Connection.handleReadEvent(Connection.java:
> 474)
>        at
>
> com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java:
> 774)
>        at
> com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java:
> 205)
>        at com.google.net.async.EventDispatcher.loop(EventDispatcher.java:
> 101)
>        at
> com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java:
> 251)
>        at com.google.apphosting.runtime.JavaRuntime
> $RpcRunnable.run(JavaRuntime.java:394)
>        at java.lang.Thread.run(Unknown Source)
>
> --
> 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
> [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-appengine-java%[email protected]>
> .
> 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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to