Is there a difference in the way the servlet/jsp container creates Threads to serve the Servlet and the way it creates threads to serve JSPs.
I'm not sure what servlet container you use ... but they all have a way to "keep JSP file generated". This means that when a JSP file is changed, the servlet engine generates a servlet from the JSP and then compiles the servlet to a class file. By configuring your servlet container you can order it to keep the intermediate servlet files without deleting them.
Then open the servlet file corresponding to your JSP and see what's different from your own servlet implementation.