I have a web application which works prefectly fine, except that sometimes, with multiple clients, the session data "breaks" and all the methods which work on this data also break as a result. So my question is, does Tomcat guarantee multi-threading capability? Is each session object for each client safe from one another? The current problem I have is that working on session data from one client sometimes causes it to somehow currupt data from another session and crash Tomcat. I am simply getting some data from the session, processing it using 3rd party libraries and storing new data in the session again. This does not happen all the time, and it works well for a single user (and for multiple clients for a short period of time). I have not yet managed to find any pattern as to why/how this happens.