I've a strange issue ... My application is a JSF one using primefaces. Access to the Datastore is protected by a DAO (sort of) layer. JPA is used. A page showing a quite great number of entites (just showing, not enabling to modify them) ends with the following exception:
Uncaught exception from servlet com.google.apphosting.api.ApiProxy$RequestTooLargeException: The request to API call datastore_v3.Put() was too large. at com.google.apphosting.runtime.ApiProxyImpl $AsyncApiFuture.rpcFinished(ApiProxyImpl.java:270) at com.google.net.rpc.RpcStub$RpcCallbackDispatcher $1.runInContext(RpcStub.java:1025) at com.google.tracing.TraceContext$TraceContextRunnable $1.run(TraceContext.java:444) at com.google.tracing.TraceContext.runInContext(TraceContext.java: 684) at com.google.tracing.TraceContext $AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java: 322) at com.google.tracing.TraceContext $AbstractTraceContextCallback.runInInheritedContext(TraceContext.java: 314) at com.google.tracing.TraceContext $TraceContextRunnable.run(TraceContext.java:442) at com.google.net.rpc.RpcStub $RpcCallbackDispatcher.rpcFinished(RpcStub.java:1046) at com.google.net.rpc.RPC.internalFinish(RPC.java:2047) at com.google.net.rpc.impl.RpcNetChannel.finishRpc(RpcNetChannel.java: 2338) at com.google.net.rpc.impl.RpcNetChannel.messageReceived(RpcNetChannel.java: 1265) 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: 831) at com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java: 207) at com.google.net.async.EventDispatcher.loop(EventDispatcher.java: 103) at com.google.net.async.GlobalEventRegistry $2.runLoop(GlobalEventRegistry.java:95) at com.google.net.async.LoopingEventDispatcher $EventDispatcherThread.run(LoopingEventDispatcher.java:378) I cannot understand how a read only list can fail on a "write error" operation. The snippet of the method that causes the eror is the following: public List<AlarmDTO> getAlarmsByUser(final String uId) { final List<AlarmDTO> result = new ArrayList<AlarmDTO>(); execute(new Runnable() { public void run(EntityManager em) { User user = em.find(User.class, uId); List<Alarm> alarms = (List<Alarm>)user.getAlarms(); em.clear(); for (Alarm alarm : alarms) { AlarmDTO alarmDTO = new AlarmDTO(); hydrateDTO(alarmDTO, alarm); result.add(alarmDTO); } } }); return result; } The "execute" method just creates an entityManager, open a transaction before calling the run method and then, call commit or rollback at the end. hydrateDTO copies values from the JPA entity alarm to the AlarmDTO. I've tried to execute this method outside any transaction. The result is the same ... Can someone can explain me why GAE try to write something and what it tries to write ... -- 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.