https://bz.apache.org/bugzilla/show_bug.cgi?id=60385
Bug ID: 60385
Summary: ServletRequestListener.requestDestroyed not invoked
after exception in requestInitialized
Product: Tomcat 7
Version: 7.0.35
Hardware: Macintosh
OS: Mac OS X 10.1
Status: NEW
Severity: major
Priority: P2
Component: Catalina
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
Created attachment 34456
--> https://bz.apache.org/bugzilla/attachment.cgi?id=34456&action=edit
Builds a WAR that reproduces the issue
If an application has a ServletRequestListener defined that throws an exception
from its requestInitialized() method, it will prevent the requestDestroyed()
method from ever being invoked for that request. This causes major problems
when a framework relies on requestInitialized and requestDestroyed always being
called at least once for every request.
Steps to Reproduce:
1) Build the attached project which generates a WAR
2) Deploy the WAR to Tomcat
3) Visit the /tomcat-listener-bug-1.0/simple page 6 times. On the 6th request
the application will shut down if requestDestroyed() is never called
Actual Results:
The application shuts down.
Expected Results:
The application should stay up and requestDestroyed() should be called for
every call to requestInitialized().
Build Date & Hardware:
Originally tested on Tomcat 7.0.35, Mac OS X 10.1 and Java 7. The issue occurs
on all versions of Tomcat (even up to 9.0.0.M13) and all versions of Java as
well.
Additional Builds and Platforms:
I tested this same sample app on Jetty 9 and Glassfish 4 (newest releases of
both as of 11/16/2016) and it does not exhibit this same behavior. On both of
those servers requestDestroyed() is called for every single
requestInitialized(), even in the case of an exception.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]