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

Reply via email to