Author: lektran
Date: Fri Jul 30 12:18:12 2010
New Revision: 980747
URL:
http://svn.apache.org/viewvc?rev=980747&view=revLog:
Fix for OFBIZ-3786 reported by Sascha Rodekamp, first-visit controller events were not being executed. Fix based on a simplified version of the patch provided by Sascha.
Modified:
ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java
Modified: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java?rev=980747&r1=980746&r2=980747&view=diff==============================================================================
--- ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java (original)
+++ ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java Fri Jul 30 12:18:12 2010
@@ -274,23 +274,20 @@ public class RequestHandler {
}
// If its the first visit run the first visit events.
- if (this.trackVisit(request) && session.getAttribute("visit") == null) {
+ if (this.trackVisit(request) && session.getAttribute("_FIRST_VISIT_EVENTS_") == null) {
if (Debug.infoOn())
Debug.logInfo("This is the first request in this visit." + " sessionId=" + UtilHttp.getSessionId(request), module);
- // This isn't an event because it is required to run. We do not want to make it optional.
- GenericValue visit = VisitHandler.getVisit(session);
- if (visit != null) {
- for (ConfigXMLReader.Event event: controllerConfig.getFirstVisitEventList().values()) {
- try {
- String returnString = this.runEvent(request, response, event, null, "firstvisit");
- if (returnString != null && !returnString.equalsIgnoreCase("success")) {
- throw new EventHandlerException("First-Visit event did not return 'success'.");
- } else if (returnString == null) {
- interruptRequest = true;
- }
- } catch (EventHandlerException e) {
- Debug.logError(e, module);
+ session.setAttribute("_FIRST_VISIT_EVENTS_", "complete");
+ for (ConfigXMLReader.Event event: controllerConfig.getFirstVisitEventList().values()) {
+ try {
+ String returnString = this.runEvent(request, response, event, null, "firstvisit");
+ if (returnString != null && !returnString.equalsIgnoreCase("success")) {
+ throw new EventHandlerException("First-Visit event did not return 'success'.");
+ } else if (returnString == null) {
+ interruptRequest = true;
}
+ } catch (EventHandlerException e) {
+ Debug.logError(e, module);
}
}
}