You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by su...@apache.org on 2019/04/27 08:57:48 UTC
svn commit: r1858256 -
/ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/SurveyEvents.java
Author: surajk
Date: Sat Apr 27 08:57:48 2019
New Revision: 1858256
URL: http://svn.apache.org/viewvc?rev=1858256&view=rev
Log:
Fixed: Unable to add survey product to cart in order entry form.
(OFBIZ-10735)
It was due to incorrect usage of param map, used UtilHttp.getCombinedMap instead with some code improvements.
Thanks Amit Gadaley for reporting the issue and providing the patch.
Modified:
ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/SurveyEvents.java
Modified: ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/SurveyEvents.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/SurveyEvents.java?rev=1858256&r1=1858255&r2=1858256&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/SurveyEvents.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/SurveyEvents.java Sat Apr 27 08:57:48 2019
@@ -18,6 +18,7 @@
*******************************************************************************/
package org.apache.ofbiz.content.survey;
+import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
@@ -25,6 +26,7 @@ import javax.servlet.http.HttpServletRes
import org.apache.ofbiz.base.util.Debug;
import org.apache.ofbiz.base.util.UtilHttp;
+import org.apache.ofbiz.service.*;
import org.apache.ofbiz.webapp.control.ConfigXMLReader;
import org.apache.ofbiz.webapp.control.ConfigXMLReader.RequestMap;
import org.apache.ofbiz.webapp.control.RequestHandler;
@@ -39,29 +41,25 @@ public class SurveyEvents {
public static final String module = SurveyEvents.class.getName();
public static String createSurveyResponseAndRestoreParameters(HttpServletRequest request, HttpServletResponse response) {
- // Call createSurveyResponse as an event, easier to setup and ensures parameter security
- ConfigXMLReader.Event createSurveyResponseEvent = new ConfigXMLReader.Event("service", null, "createSurveyResponse", true);
- RequestHandler rh = (RequestHandler) request.getAttribute("_REQUEST_HANDLER_");
- ConfigXMLReader.ControllerConfig controllerConfig = rh.getControllerConfig();
- String requestUri = (String) request.getAttribute("thisRequestUri");
- RequestMap requestMap = null;
- try {
- requestMap = controllerConfig.getRequestMapMap().get(requestUri);
- } catch (WebAppConfigurationException e) {
- Debug.logError(e, "Exception thrown while parsing controller.xml file: ", module);
- }
- String eventResponse = null;
+ LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");
+ DispatchContext dctx = dispatcher.getDispatchContext();
+
+ Map<String, Object> combinedMap = UtilHttp.getCombinedMap(request);
+
try {
- eventResponse = rh.runEvent(request, response, createSurveyResponseEvent, requestMap, null);
- } catch (EventHandlerException e) {
+ Map<String, Object> surveyResponseMap = dctx.makeValidContext("createSurveyResponse", ModelService.IN_PARAM, combinedMap);
+ Map<String, Object> surveyResponseResult = dispatcher.runSync("createSurveyResponse", surveyResponseMap);
+ if (ServiceUtil.isError(surveyResponseResult)) {
+ Debug.logError(ServiceUtil.getErrorMessage(surveyResponseResult), module);
+ return "error";
+ }
+ request.setAttribute("surveyResponseId", surveyResponseResult.get("surveyResponseId"));
+ } catch (GenericServiceException e) {
Debug.logError(e, module);
return "error";
}
- if (!"success".equals(eventResponse)) {
- return eventResponse;
- }
+
// Check for an incoming _ORIG_PARAM_MAP_ID_, if present get the session stored parameter map and insert it's entries as request attributes
- Map<String, Object> combinedMap = UtilHttp.getCombinedMap(request);
if (combinedMap.containsKey("_ORIG_PARAM_MAP_ID_")) {
String origParamMapId = (String) combinedMap.get("_ORIG_PARAM_MAP_ID_");
UtilHttp.restoreStashedParameterMap(request, origParamMapId);