https://issues.apache.org/bugzilla/show_bug.cgi?id=54315
--- Comment #17 from Konstantin Kolinko <knst.koli...@gmail.com> --- (In reply to Mark Thomas from comment #13) > re 2, I don't see how this could lead to the constant NPE issue the OP > reported unless deployment failed. > I said: > TH1: in StandardWrapper.allocate() checks for unloading > TH1: in StandardWrapper.allocate() waits for synchronized block > TH2: executes StandardWrapper.unload() > TH1: in StandardWrapper.allocate() obtains the monitor and allocates a servlet > Expected: TH1 should not be able to allocate one, as unloading has > already happened. I mean that it continues this way: TH2 continues shutting down the context, as it thinks that all wrappers are unloaded and no request processing is happening at this moment. In StandardContext.stopInternal() TH2 has done "children[i].stop();" and the next steps that it does are: * filterStop(); * ((Lifecycle) manager).stop(); In ManagerBase.stopInternal() it does "this.sessionIdGenerator = null;". TH1: It goes on with request processing and encounters that the session manager has been stopped and manager.sessionIdGenerator is null. This is just a theory, I have not tested it. -- You are receiving this mail because: You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org