From a03a5c340bc386a4c8809c7641cac8f853bdf0ef Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Mon, 15 Apr 2013 14:31:41 +1000 Subject: [PATCH] 405540 ServletContextListeners call in reverse in doStop --- .../jetty/server/handler/ContextHandler.java | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java index 48fa63858c3..95d307c19d2 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java @@ -818,8 +818,8 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu if (!_contextListeners.isEmpty()) { ServletContextEvent event = new ServletContextEvent(_scontext); - for (ServletContextListener listener : _contextListeners) - callContextDestroyed(listener,event); + for (int i = _contextListeners.size(); i-->0;) + callContextDestroyed(_contextListeners.get(i),event); } if (_errorHandler != null) @@ -1094,20 +1094,15 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu if (!_requestListeners.isEmpty()) { final ServletRequestEvent sre = new ServletRequestEvent(_scontext,request); - ListIterator iter = _requestListeners.listIterator(_requestListeners.size()); - while (iter.hasNext()) - iter.next(); - while (iter.hasPrevious()) - iter.previous().requestDestroyed(sre); + for (int i=_requestListeners.size();i-->0;) + _requestListeners.get(i).requestDestroyed(sre); } if (!_requestAttributeListeners.isEmpty()) { ListIterator iter = _requestAttributeListeners.listIterator(_requestAttributeListeners.size()); - while(iter.hasNext()) - iter.next(); - while(iter.hasPrevious()) - baseRequest.removeEventListener(iter.previous()); + for (int i=_requestAttributeListeners.size();i-->0;) + baseRequest.removeEventListener(_requestAttributeListeners.get(i)); } } }