Important Notice - Forums is archived
To simplify things and help our users to be more productive, we have archived the current forum and focus our efforts on helping developers on Stack Overflow. You can post new questions on Stack Overflow or join our Discord channel.

Vaadin lets you build secure, UX-first PWAs entirely in Java.
Free ebook & tutorial.
JDO + GAE + Table = "Session Expired"
Hi guys,
I have a small project ( http://cflocator.appspot.com ) based on the tutorial 'contacts' app, everything works fine in the GAE, until I try to load the persistent objects into the container from a JDO-DAO class, actually the table get the first (500) group of results but immediately the red session expired alerts shows. I've already serialized my objects and enabled sessions on appengine-web.xml
My container code, looks something like this...
public class CFLocationContainer extends BeanItemContainer<CFLocation> implements
Serializable {
public CFLocationContainer() throws InstantiationException,
IllegalAccessException {
super(CFLocation.class);
}
public static CFLocationContainer createWithDAO(){
CFLocationContainer c = null;
try {
c = new CFLocationContainer();
CFLocationDAO cfdao = new CFLocationJdoDAO();
List<CFLocation> cfList=cfdao.listCFLocations();
for(CFLocation loc:cfList){
c.addItem(loc);
}
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return c;
}
Any hints about this? Im pretty new to Vaadin and GAE so probably I'm skipping something obvious.
Thanks,
Billy T.
It looks like some exception occurs upon the second (any) request to the server - such as clicking on the tree after the initial page load - causing the message to be shown.
You should check your exception logs and make sure you catch the relevant exceptions, or run the application in a debugger. You could also override Application.terminalError() to provide customized handling and reporting of errors that occur during requests from the UI to the server.
The stack trace should help in getting forward with resolving the problem.
Thanks Henri,
As an update the problem was stale data in the datastore, it was easier to catch with the terminalError() tip.
-Billy!