Found one Java-level deadlock:
=============================
"http-bio-8080-exec-4102":
waiting to lock monitor 0x00007f759c1b1838 (object 0x00000007806923e8, a java.util.TreeMap),
which is held by "http-bio-8080-exec-1295"
"http-bio-8080-exec-1295":
waiting to lock monitor 0x00007f7589096c98 (object 0x0000000780a23eb8, a java.util.HashMap),
which is held by "http-bio-8080-exec-284"
"http-bio-8080-exec-284":
waiting to lock monitor 0x00007f759c1b1838 (object 0x00000007806923e8, a java.util.TreeMap),
which is held by "http-bio-8080-exec-1295"
Java stack information for the threads listed above:
===================================================
"http-bio-8080-exec-4102":
at net.socialgamer.cah.data.GameManager.getGameList(GameManager.java:252)
- waiting to lock <0x00000007806923e8> (a java.util.TreeMap)
at net.socialgamer.cah.handlers.GameListHandler.handle(GameListHandler.java:68)
at net.socialgamer.cah.servlets.AjaxServlet.handleRequest(AjaxServlet.java:96)
at net.socialgamer.cah.servlets.CahServlet.doPost(CahServlet.java:116)
[...]
"http-bio-8080-exec-1295":
at net.socialgamer.cah.data.ConnectedUsers.broadcastToList(ConnectedUsers.java:228)
- waiting to lock <0x0000000780a23eb8> (a java.util.HashMap)
at net.socialgamer.cah.data.Game.broadcastToPlayers(Game.java:416)
at net.socialgamer.cah.data.Game.addPlayer(Game.java:225)
at net.socialgamer.cah.data.GameManager.createGameWithPlayer(GameManager.java:135)
- locked <0x00000007806923e8> (a java.util.TreeMap)
at net.socialgamer.cah.handlers.CreateGameHandler.handle(CreateGameHandler.java:70)
at net.socialgamer.cah.servlets.AjaxServlet.handleRequest(AjaxServlet.java:96)
at net.socialgamer.cah.servlets.CahServlet.doPost(CahServlet.java:116)
[...]
"http-bio-8080-exec-284":
at net.socialgamer.cah.data.GameManager.destroyGame(GameManager.java:162)
- waiting to lock <0x00000007806923e8> (a java.util.TreeMap)
at net.socialgamer.cah.data.Game.removePlayer(Game.java:308)
at net.socialgamer.cah.data.User.noLongerVaild(User.java:202)
at net.socialgamer.cah.data.ConnectedUsers.removeUser(ConnectedUsers.java:128)
- locked <0x0000000780a23eb8> (a java.util.HashMap)
at net.socialgamer.cah.handlers.LogoutHandler.handle(LogoutHandler.java:67)
at net.socialgamer.cah.servlets.AjaxServlet.handleRequest(AjaxServlet.java:96)
at net.socialgamer.cah.servlets.CahServlet.doPost(CahServlet.java:116)
[...]
Found 1 deadlock.
Haven't had one of these in a very long time.