Author: jeromy
Date: Sun Apr 27 02:26:01 2008
New Revision: 651901
URL: http://svn.apache.org/viewvc?rev=651901&view=rev
Log:
Work-around to release threadlocal ActionContext in init and destroy
WW-2167
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java?rev=651901&r1=651900&r2=651901&view=diff
==============================================================================
---
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
(original)
+++
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
Sun Apr 27 02:26:01 2008
@@ -203,20 +203,24 @@
* @param filterConfig The filter configuration
*/
public void init(FilterConfig filterConfig) throws ServletException {
- this.filterConfig = filterConfig;
-
- initLogging();
-
- dispatcher = createDispatcher(filterConfig);
- dispatcher.init();
- dispatcher.getContainer().inject(this);
+ try {
+ this.filterConfig = filterConfig;
+
+ initLogging();
+
+ dispatcher = createDispatcher(filterConfig);
+ dispatcher.init();
+ dispatcher.getContainer().inject(this);
- String param = filterConfig.getInitParameter("packages");
- String packages = "org.apache.struts2.static template
org.apache.struts2.interceptor.debugging";
- if (param != null) {
- packages = param + " " + packages;
+ String param = filterConfig.getInitParameter("packages");
+ String packages = "org.apache.struts2.static template
org.apache.struts2.interceptor.debugging";
+ if (param != null) {
+ packages = param + " " + packages;
+ }
+ this.pathPrefixes = parse(packages);
+ } finally {
+ ActionContext.setContext(null);
}
- this.pathPrefixes = parse(packages);
}
private void initLogging() {
@@ -252,7 +256,11 @@
if (dispatcher == null) {
log.warn("something is seriously wrong, Dispatcher is not
initialized (null) ");
} else {
- dispatcher.cleanup();
+ try {
+ dispatcher.cleanup();
+ } finally {
+ ActionContext.setContext(null);
+ }
}
}