You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2012/07/07 13:35:54 UTC
svn commit: r1358544 - in /ofbiz/branches/release12.04: ./
framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java
Author: jleroux
Date: Sat Jul 7 11:35:54 2012
New Revision: 1358544
URL: http://svn.apache.org/viewvc?rev=1358544&view=rev
Log:
"Applied fix from trunk for revision: 1353135"
------------------------------------------------------------------------
r1353135 | jleroux | 2012-06-23 16:57:18 +0200 (sam., 23 juin 2012) | 2 lines
Closes "Login out on a cluster handled by DeltaManager causes a NPE" https://issues.apache.org/jira/browse/OFBIZ-4289
Removes all changes related to this issue. We will see later if ever it proves to be a real issue.
------------------------------------------------------------------------
Modified:
ofbiz/branches/release12.04/ (props changed)
ofbiz/branches/release12.04/framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java
Propchange: ofbiz/branches/release12.04/
------------------------------------------------------------------------------
Merged /ofbiz/trunk:r1353135
Modified: ofbiz/branches/release12.04/framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release12.04/framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java?rev=1358544&r1=1358543&r2=1358544&view=diff
==============================================================================
--- ofbiz/branches/release12.04/framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java (original)
+++ ofbiz/branches/release12.04/framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java Sat Jul 7 11:35:54 2012
@@ -39,18 +39,16 @@ import javolution.util.FastList;
import javolution.util.FastMap;
import org.ofbiz.base.component.ComponentConfig;
-import org.ofbiz.base.container.ContainerConfig;
-import org.ofbiz.base.container.ContainerException;
import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.GeneralException;
import org.ofbiz.base.util.KeyStoreUtil;
import org.ofbiz.base.util.StringUtil;
+import org.ofbiz.base.util.StringUtil.StringWrapper;
import org.ofbiz.base.util.UtilFormatOut;
import org.ofbiz.base.util.UtilHttp;
import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.base.util.UtilProperties;
import org.ofbiz.base.util.UtilValidate;
-import org.ofbiz.base.util.StringUtil.StringWrapper;
import org.ofbiz.entity.Delegator;
import org.ofbiz.entity.DelegatorFactory;
import org.ofbiz.entity.GenericEntityException;
@@ -447,7 +445,7 @@ public class LoginWorker {
if (setupNewDelegatorEtc) {
// now set the delegator and dispatcher in a bunch of places just in case they were changed
- setWebContextObjects(request, response, delegator, dispatcher, true);
+ setWebContextObjects(request, response, delegator, dispatcher);
}
// check to see if a password change is required for the user
@@ -476,47 +474,33 @@ public class LoginWorker {
return "error";
}
}
-
- /* persistSerialized is set at false in the context of a cluster when using (at least) DeltaManager.
- Because we have no easy ways to set DeltaManager.pathname to null from OFBiz
- So persistSerialized is set to true when login out. This prevent a NPE due to non serialized objects put in session*/
- private static void setWebContextObjects(HttpServletRequest request, HttpServletResponse response, Delegator delegator, LocalDispatcher dispatcher, Boolean persistSerialized) {
+ private static void setWebContextObjects(HttpServletRequest request, HttpServletResponse response, Delegator delegator, LocalDispatcher dispatcher) {
HttpSession session = request.getSession();
// NOTE: we do NOT want to set this in the servletContet, only in the request and session
session.setAttribute("delegatorName", delegator.getDelegatorName());
request.setAttribute("delegator", delegator);
- if (!persistSerialized) {
- session.setAttribute("delegator", null);
- } else {
- session.setAttribute("delegator", delegator);
- }
+ session.setAttribute("delegator", delegator);
request.setAttribute("dispatcher", dispatcher);
- if (!persistSerialized) {
- session.setAttribute("dispatcher", null);
- } else {
- session.setAttribute("dispatcher", dispatcher);
+ session.setAttribute("dispatcher", dispatcher);
+
+ // we also need to setup the security and authz objects since they are dependent on the delegator
+ try {
+ Security security = SecurityFactory.getInstance(delegator);
+ request.setAttribute("security", security);
+ session.setAttribute("security", security);
+ } catch (SecurityConfigurationException e) {
+ Debug.logError(e, module);
}
- if (persistSerialized) {
- // we also need to setup the security and authz objects since they are dependent on the delegator
- try {
- Security security = SecurityFactory.getInstance(delegator);
- request.setAttribute("security", security);
- session.setAttribute("security", security);
- } catch (SecurityConfigurationException e) {
- Debug.logError(e, module);
- }
-
- try {
- Authorization authz = AuthorizationFactory.getInstance(delegator);
- request.setAttribute("authz", authz);
- session.setAttribute("authz", authz);
- } catch (SecurityConfigurationException e) {
- Debug.logError(e, module);
- }
+ try {
+ Authorization authz = AuthorizationFactory.getInstance(delegator);
+ request.setAttribute("authz", authz);
+ session.setAttribute("authz", authz);
+ } catch (SecurityConfigurationException e) {
+ Debug.logError(e, module);
}
// get rid of the visit info since it was pointing to the previous database, and get a new one
@@ -652,22 +636,7 @@ public class LoginWorker {
delegator = DelegatorFactory.getDelegator(delegatorName);
LocalDispatcher dispatcher = ContextFilter.makeWebappDispatcher(session.getServletContext(), delegator);
- // get the container configuration
- String ofbizHome = System.getProperty("ofbiz.home");
- String configFile = ofbizHome + "/framework/base/config/ofbiz-containers.xml";
- ContainerConfig.Container cc = null;
- String mgrClassName = null;
- try {
- cc = ContainerConfig.getContainer("catalina-container", configFile);
- mgrClassName = ContainerConfig.getPropertyValue(cc, "manager-class", "");
- } catch (ContainerException e) {
- Debug.logError(e, "No catalina-container configuration found in container config!");
- }
- if ("org.apache.catalina.ha.session.DeltaManager".equals(mgrClassName)) {
- setWebContextObjects(request, response, delegator, dispatcher, false);
- } else {
- setWebContextObjects(request, response, delegator, dispatcher, true);
- }
+ setWebContextObjects(request, response, delegator, dispatcher);
}
// DON'T save the cart, causes too many problems: if (shoppingCart != null) session.setAttribute("shoppingCart", new WebShoppingCart(shoppingCart, session));
@@ -981,7 +950,7 @@ public class LoginWorker {
if (!oldDelegatorName.equals(userLogin.getDelegator().getDelegatorName())) {
delegator = DelegatorFactory.getDelegator(userLogin.getDelegator().getDelegatorName());
dispatcher = ContextFilter.makeWebappDispatcher(servletContext, delegator);
- setWebContextObjects(request, response, delegator, dispatcher, true);
+ setWebContextObjects(request, response, delegator, dispatcher);
}
// found userLogin, do the external login...