costin 01/02/16 23:08:18
Modified: src/facade22/org/apache/tomcat/facade
Servlet22Interceptor.java
Log:
Fix for the destroy() bug reported by [EMAIL PROTECTED]
Now both jspDestroy() and destroy() should work ( please check the next
nigthly build ).
The fix is specific to 3.3.
( BTW, I can try to do a fix in 3.2.x, but if the bug is present in 3.2.1
and it's not a regression I would rather fix other bugs in 3.3 )
The problem was that the servlet was removed from context, and then
destroy() did nothing ( it checks if the servlet is initialized - when
it's removed from the context the servlet is no longer in a "stable"
state, it's orphan )
Revision Changes Path
1.11 +8 -2
jakarta-tomcat/src/facade22/org/apache/tomcat/facade/Servlet22Interceptor.java
Index: Servlet22Interceptor.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/Servlet22Interceptor.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- Servlet22Interceptor.java 2001/01/01 00:17:22 1.10
+++ Servlet22Interceptor.java 2001/02/17 07:08:18 1.11
@@ -116,14 +116,20 @@
while (enum.hasMoreElements()) {
String key = (String)enum.nextElement();
Handler wrapper = ctx.getServletByName( key );
- if( ! (wrapper instanceof ServletHandler) )
+
+ if( ! (wrapper instanceof ServletHandler) )
continue;
- ctx.removeServletByName( key );
+
try {
((ServletHandler)wrapper).destroy();
} catch(Exception ex ) {
ctx.log( "Error in destroy ", ex);
}
+ // remove the context after it is destroyed.
+ // remove will "un-declare" the servlet
+ // After this the servlet will be in STATE_NEW, and can
+ // be reused.
+ ctx.removeServletByName( key );
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]