[OFBiz] SVN: r6672 - trunk/framework/webapp/src/org/ofbiz/webapp/control

jonesde@svn.ofbiz.org jonesde at svn.ofbiz.org
Fri Feb 3 15:17:24 CST 2006


Author: jonesde
Date: 2006-02-03 15:17:21 -0600 (Fri, 03 Feb 2006)
New Revision: 6672

Modified:
   trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java
Log:
Applied patch from Si Chen to improve error message handling when doing redirects and such in the request handler; Jira #OFBIZ-696

Modified: trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java
===================================================================
--- trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java	2006-02-03 20:35:07 UTC (rev 6671)
+++ trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java	2006-02-03 21:17:21 UTC (rev 6672)
@@ -299,6 +299,27 @@
         String previousRequest = (String) request.getSession().getAttribute("_PREVIOUS_REQUEST_");
         String loginPass = (String) request.getAttribute("_LOGIN_PASSED_");
 
+        // restore previous redirected request's attribute, so redirected page can display previous request's error msg etc.
+        String preReqAttStr = (String) request.getSession().getAttribute("_REQ_ATTR_MAP_");
+        Map preRequestMap = null;
+        if(preReqAttStr!=null){
+            request.getSession().removeAttribute("_REQ_ATTR_MAP_");
+            byte [] reqAttrMapBytes = StringUtil.fromHexString(preReqAttStr);
+            preRequestMap = (java.util.Map)org.ofbiz.base.util.UtilObject.getObject(reqAttrMapBytes);
+            java.util.Iterator keys= preRequestMap.keySet().iterator();
+            while(keys.hasNext()){
+                String key = (String) keys.next();
+                if("_ERROR_MESSAGE_LIST_".equals(key) ||
+                        "_ERROR_MESSAGE_MAP_".equals(key) ||
+                        "_ERROR_MESSAGE_".equals(key) ||
+                        "_EVENT_MESSAGE_LIST_".equals(key) ||
+                        "_EVENT_MESSAGE_".equals(key)){
+                    Object value = preRequestMap.get(key);
+                    request.setAttribute(key, value);
+               }
+            }
+        }
+
         if (Debug.verboseOn()) Debug.logVerbose("[RequestHandler]: previousRequest - " + previousRequest + " (" + loginPass + ")", module);
 
         // if previous request exists, and a login just succeeded, do that now.



More information about the Svn mailing list