Author: mrdon
Date: Sat Jul 12 07:40:27 2008
New Revision: 676181

URL: http://svn.apache.org/viewvc?rev=676181&view=rev
Log:
Ensuring action context is setup by prepare dispatcher ahead of action execution
WW-2079

Modified:
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareAndExecuteFilter.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareFilter.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/servlet/StrutsServlet.java

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java?rev=676181&r1=676180&r2=676181&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
 Sat Jul 12 07:40:27 2008
@@ -488,7 +488,10 @@
         Map application = new ApplicationMap(context);
 
         Map<String,Object> extraContext = createContextMap(requestMap, params, 
session, application, request, response, context);
-        extraContext.put(ServletActionContext.ACTION_MAPPING, mapping);
+
+        if (mapping != null) {
+            extraContext.put(ServletActionContext.ACTION_MAPPING, mapping);
+        }
         return extraContext;
     }
 

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java?rev=676181&r1=676180&r2=676181&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java
 Sat Jul 12 07:40:27 2008
@@ -58,7 +58,7 @@
     /**
      * Creates the action context and initializes the thread local
      */
-    public ActionContext createActionContext(HttpServletRequest request) {
+    public ActionContext createActionContext(HttpServletRequest request, 
HttpServletResponse response) {
         ActionContext ctx;
         Integer counter = 1;
         Integer oldCounter = (Integer) 
request.getAttribute(CLEANUP_RECURSION_COUNTER);
@@ -72,6 +72,7 @@
             ctx = new ActionContext(new HashMap<String, 
Object>(oldContext.getContextMap()));
         } else {
             ValueStack stack = 
dispatcher.getContainer().getInstance(ValueStackFactory.class).createValueStack();
+            stack.getContext().putAll(dispatcher.createContextMap(request, 
response, null, servletContext));
             ctx = new ActionContext(stack.getContext());
         }
         request.setAttribute(CLEANUP_RECURSION_COUNTER, counter);

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareAndExecuteFilter.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareAndExecuteFilter.java?rev=676181&r1=676180&r2=676181&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareAndExecuteFilter.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareAndExecuteFilter.java
 Sat Jul 12 07:40:27 2008
@@ -62,7 +62,7 @@
         HttpServletResponse response = (HttpServletResponse) res;
 
         try {
-            prepare.createActionContext(request);
+            prepare.createActionContext(request, response);
             prepare.assignDispatcherToThread();
             prepare.setEncodingAndLocale(request, response);
             request = prepare.wrapRequest(request);

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareFilter.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareFilter.java?rev=676181&r1=676180&r2=676181&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareFilter.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareFilter.java
 Sat Jul 12 07:40:27 2008
@@ -56,7 +56,7 @@
         HttpServletResponse response = (HttpServletResponse) res;
 
         try {
-            prepare.createActionContext(request);
+            prepare.createActionContext(request, response);
             prepare.assignDispatcherToThread();
             prepare.setEncodingAndLocale(request, response);
             request = prepare.wrapRequest(request);

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/servlet/StrutsServlet.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/servlet/StrutsServlet.java?rev=676181&r1=676180&r2=676181&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/servlet/StrutsServlet.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/servlet/StrutsServlet.java
 Sat Jul 12 07:40:27 2008
@@ -63,7 +63,7 @@
     public void service(HttpServletRequest request, HttpServletResponse 
response) throws IOException, ServletException {
 
         try {
-            prepare.createActionContext(request);
+            prepare.createActionContext(request, response);
             prepare.assignDispatcherToThread();
             prepare.setEncodingAndLocale(request, response);
             request = prepare.wrapRequest(request);


Reply via email to