[ 
https://issues.apache.org/jira/browse/OFBIZ-10030?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Brohl closed OFBIZ-10030.
---------------------------------
       Resolution: Implemented
    Fix Version/s: Upcoming Release

Thanks Jacques for the feedback.

This is now in trunk r1816937.

> TrackingCodeEvents#checkTrackingCodeUrlParam returns "error" if tracking code 
> is not available
> ----------------------------------------------------------------------------------------------
>
>                 Key: OFBIZ-10030
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-10030
>             Project: OFBiz
>          Issue Type: Bug
>          Components: marketing
>    Affects Versions: Trunk
>            Reporter: Michael Brohl
>            Assignee: Michael Brohl
>            Priority: Minor
>             Fix For: Upcoming Release
>
>         Attachments: OFBIZ-10030_checkTrackingCodeUrlParam_returns_error.patch
>
>
> In TrackingCodeEvents#checkTrackingCodeUrlParam, a provided tracking code is 
> checked against the database. If not found, it returns "error".
> {code:java}
>             if (trackingCode == null) {
>                 Debug.logError("TrackingCode not found for trackingCodeId [" 
> + trackingCodeId + "], ignoring this trackingCodeId.", module);
>                 //this return value will be ignored, but we'll designate this 
> as an error anyway
>                 return "error";
>             }
> {code}
> The notice "return value is ignored" is not true because in the event 
> handler, a non-success return value is handled to throw an excpetion:
> {code:java}
>             // Invoke the pre-processor (but NOT in a chain)
>             for (ConfigXMLReader.Event event: 
> controllerConfig.getPreprocessorEventList().values()) {
>                 try {
>                     String returnString = this.runEvent(request, response, 
> event, null, "preprocessor");
>                     if (returnString != null && 
> !returnString.equalsIgnoreCase("success")) {
>                         if (!returnString.contains(":_protect_:")) {
>                             throw new EventHandlerException("Pre-Processor 
> event [" + event.invoke + "] did not return 'success'.");
>                         } else { // protect the view normally rendered and 
> redirect to error response view
>                             returnString = 
> returnString.replace(":_protect_:", "");
>                             if (returnString.length() > 0) {
>                                 request.setAttribute("_ERROR_MESSAGE_", 
> returnString);
>                             }
>                             eventReturn = null;
>                             // check to see if there is a "protect" response, 
> if so it's ok else show the default_error_response_view
>                             if 
> (!requestMap.requestResponseMap.containsKey("protect")) {
>                                 String protectView = 
> controllerConfig.getProtectView();
>                                 if (protectView != null) {
>                                     overrideViewUri = protectView;
>                                 } else {
>                                     overrideViewUri = 
> UtilProperties.getPropertyValue("security.properties", 
> "default.error.response.view");
>                                     overrideViewUri = 
> overrideViewUri.replace("view:", "");
>                                     if ("none:".equals(overrideViewUri)) {
>                                         interruptRequest = true;
>                                     }
>                                 }
>                             }
>                         }
>                     } else if (returnString == null) {
>                         interruptRequest = true;
>                     }
>                 } catch (EventHandlerException e) {
>                     Debug.logError(e, module);
>                 }
>             }
> {code}
> This leads to a flood of Exception stacktraces in the OFBiz logs.
> In my opinion, the checkTrackingCodeUrlParam method should return "success" 
> if the tracking code is not found and should log to loglevel "info". It's not 
> an error.
> What do others think?



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to