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...