This may not be vaadin related question, though there is probability it could be because it is a vaadin aap.
So, even if you resolve that it is not related to vaadin, due to the concentration of java and gae expertise in this forum, my apologies request for your kind advice and hearing of any issues unrelated to vaadin.
I have
- a GenApp class which extends Application.
- UserApp and LoginoutCallbackApp classes which extend GenApp.
- WindowWithMenu, WindowWithButton, SubwindowWithButton classes which extend Window.
- StartMenu Class which extends MenuBar.
Anyway, my description is getting too complex, but it serves to explain why I took the next step. As someone who succumbs easily to modularity, I decided to genericize those classes because the amount of common code found.
The reason being, also, generics allow me to perform
(T)getMainWindow() and the returned window gives me direct references to components of whichever window I used. This is especially helpful with eclipse autocomplete when you have forgotten the members of a class.
For example,
public class LoginoutCallbackApp
<S extends GenApp
<?,WindowWithMenu
<GenApp<?,?>, StartMenu>>>
extends GenApp
<LoginoutCallbackApp<?>,
SubWindowWithButton<S>>
would allow LoginoutCallbackApp
getMainApp().getStartMenu to somehow genericmagically reference the StartMenu of the UserApp without casting. To me, it was elegantly beautiful but rather obfuscated generic relationship between classes.
However, the question does not involve how to use generics. Rather, the question is -
after I changed to using generics, I encountered the simultaneous access exception of a hashmap/hashtable. I think this hashtable has something to do with session storage.
Then, after I simplified the code back to not using generics, the exception disappeared.
Does the use of generics somehow confuses the Google App Engine development environment, so that it is unable to store session attributes correctly?
Has anyone encountered this problem because I think either Google App Engine or Data Nucleus is unable to handle deep levels of generics. With all your expertise in Java and GAE, would you advise me to stay away from deep level generics as far away as possible when coding for GAE?
A detailed education on this issue would also be appreciated.