1) Browsing the code in o.a.c.startup.Embedded#stopInternal() I see
the following two lines:

        fireLifecycleEvent(STOP_EVENT, null);
        setState(LifecycleState.STOPPING);

Unless I miss something it means that STOP_EVENT is fired twice, once
by the fireLifecycleEvent() call and second time by setState().


2) Lifecycle#setState() does not check that new state != old state. It
always fires a lifecycle event on every call.

I see that some 3rd party components that extend ours (like the one
mentioned in BZ 50738) call this.setState(STARTING), then call
super.startInternal() that may fire the event second time.

Shouldn't we avoid firing duplicate events?

Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to