Author: mrdon
Date: Fri Dec 8 12:22:37 2006
New Revision: 484741
URL: http://svn.apache.org/viewvc?view=rev&rev=484741
Log:
Fixed the filter test, ensured the portlet dispatcher cleans up after itself
WW-1544
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java
struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java?view=diff&rev=484741&r1=484740&r2=484741
==============================================================================
---
struts/struts2/trunk/core/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java
(original)
+++
struts/struts2/trunk/core/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java
Fri Dec 8 12:22:37 2006
@@ -390,12 +390,12 @@
Map sessionMap, Map applicationMap, String portletNamespace,
Integer phase) throws PortletException {
LOG.debug("serviceAction");
- Dispatcher.setInstance(dispatcherUtils);
HashMap extraContext = createContextMap(requestMap, parameterMap,
sessionMap, applicationMap, request, response,
getPortletConfig(), phase);
String actionName = mapping.getName();
String namespace = mapping.getNamespace();
+ Dispatcher.setInstance(dispatcherUtils);
try {
LOG.debug("Creating action proxy for name = " + actionName
+ ", namespace = " + namespace);
@@ -431,6 +431,8 @@
LOG.error("Could not execute action", e);
throw new PortletException("Error executing action " + actionName,
e);
+ } finally {
+ Dispatcher.setInstance(null);
}
}
Modified:
struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java?view=diff&rev=484741&r1=484740&r2=484741
==============================================================================
---
struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java
(original)
+++
struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java
Fri Dec 8 12:22:37 2006
@@ -46,6 +46,8 @@
import com.opensymphony.xwork2.config.impl.DefaultConfiguration;
import com.opensymphony.xwork2.inject.Container;
import com.opensymphony.xwork2.inject.ContainerBuilder;
+import com.opensymphony.xwork2.inject.Context;
+import com.opensymphony.xwork2.inject.Factory;
/**
* FilterDispatcher TestCase.
@@ -83,11 +85,26 @@
public void testObjectFactoryDestroy() throws Exception {
- FilterDispatcher filterDispatcher = new FilterDispatcher();
+ final InnerDestroyableObjectFactory destroyedObjectFactory = new
InnerDestroyableObjectFactory();
+ FilterDispatcher filterDispatcher = new FilterDispatcher() {
+ @Override
+ protected Dispatcher createDispatcher(FilterConfig cfg) {
+ return new Dispatcher(cfg.getServletContext(), new HashMap()) {
+ Container cont = new ContainerBuilder()
+ .factory(ObjectFactory.class, new Factory() {
+ public Object create(Context context) throws
Exception { return destroyedObjectFactory; }
+ })
+ .create(false);
+
+ @Override
+ public Container getContainer() {
+ return cont;
+ }
+ };
+ }
+ };
filterDispatcher.init(new MockFilterConfig((ServletContext) null));
- InnerDestroyableObjectFactory destroyedObjectFactory = new
InnerDestroyableObjectFactory();
- ObjectFactory.setObjectFactory(destroyedObjectFactory);
-
+
assertFalse(destroyedObjectFactory.destroyed);
filterDispatcher.destroy();
assertTrue(destroyedObjectFactory.destroyed);