Fire listeners in reverse order for requestDestroyed
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Mon, 22 Mar 2010 13:18:31 +0000 (13:18 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Mon, 22 Mar 2010 13:18:31 +0000 (13:18 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@926064 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/catalina/core/StandardContextValve.java

index 4ddc07b..f47132b 100644 (file)
@@ -202,17 +202,18 @@ final class StandardContextValve
                 (instances.length > 0)) {
             // create post-service event
             for (int i = 0; i < instances.length; i++) {
-                if (instances[i] == null)
+                int j = (instances.length -1) -i;
+                if (instances[j] == null)
                     continue;
-                if (!(instances[i] instanceof ServletRequestListener))
+                if (!(instances[j] instanceof ServletRequestListener))
                     continue;
                 ServletRequestListener listener =
-                    (ServletRequestListener) instances[i];
+                    (ServletRequestListener) instances[j];
                 try {
                     listener.requestDestroyed(event);
                 } catch (Throwable t) {
                     container.getLogger().error(sm.getString("standardContext.requestListener.requestDestroy",
-                                     instances[i].getClass().getName()), t);
+                                     instances[j].getClass().getName()), t);
                     ServletRequest sreq = request.getRequest();
                     sreq.setAttribute(Globals.EXCEPTION_ATTR,t);
                 }