Jetty Version is:
9.4.26
Java Version is:
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)
Windows, Linux, Qnx
See Jetty ContextHandler.java Looks like a bug in jetty, see where on startup the content of the _servletContextListeners is copied to _destroyContextListeners:
https://github.com/eclipse/jetty.project/blob/7b38981d25d14afb4a12ff1f2596756144edf695/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java#L874-L893
Afterwards, when removeEventListener is invoked:
https://github.com/eclipse/jetty.project/blob/7b38981d25d14afb4a12ff1f2596756144edf695/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java#L691-L709
We see that while the "_servletContextListeners" is cleared, the copy already made to the "_destroySerletContextListeners" is not removed. This means that the listener is still invoked on shutdown after the client has specified that it should not be.
The _destroyServletContextListeners is private final:
https://github.com/eclipse/jetty.project/blob/7b38981d25d14afb4a12ff1f2596756144edf695/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java#L209
So we can't remove this listener on shutdown without Jetty intervention.