svn commit: r1140366 - in /ofbiz/branches/release10.04: ./ applications/product/src/org/ofbiz/product/config/ProductConfigItemContentWrapper.java applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1140366 - in /ofbiz/branches/release10.04: ./ applications/product/src/org/ofbiz/product/config/ProductConfigItemContentWrapper.java applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java

lektran
Author: lektran
Date: Mon Jun 27 23:17:39 2011
New Revision: 1140366

URL: http://svn.apache.org/viewvc?rev=1140366&view=rev
Log:
Applied fix from trunk for revision: 1140358
===

Make references to Delegator and LocalDispatcher transient and provide methods to retrieve the objects when missing in ProductCofigWrapper and ProductConfigItemContentWrapper.  Prevents non-serializable exceptions from being thrown when attempting to serialize a ShoppingCart object.  Thanks to Arun Patidar for the patch.

Modified:
    ofbiz/branches/release10.04/   (props changed)
    ofbiz/branches/release10.04/applications/product/src/org/ofbiz/product/config/ProductConfigItemContentWrapper.java
    ofbiz/branches/release10.04/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java

Propchange: ofbiz/branches/release10.04/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jun 27 23:17:39 2011
@@ -1,3 +1,3 @@
 /ofbiz/branches/addbirt:831210-885099,885686-886087
 /ofbiz/branches/multitenant20100310:921280-927264
-/ofbiz/trunk:939988,939990,939999,940025,940053,940234,940248,940309,940401,940410,940425,940779,940815,940849,940851,941007,941047,941109,941177,941199,941261,941440,941600,941999,942084,942406,942414,942671,942883-942884,943168,943271-943272,943843,944614,944621,944623,944647,944669,944797,944895,945010,945018,945026,945118,945573,945578,945580,945582,945610,945619,945848,945852,945857,946061,946066,946073,946075,946080,946309,946313,946320,946322,946596,947004-947005,947392,947424,947679,947988,948017,948694,949174,949710,949844,950866,950870,950893,951005,951062,951098,951251,951367,951381,951672,952232,952249,952270,953294,953671,954135,954583,954733,954956,955568,956022,956206,956340,957160,958343,958514,958521,958752,958758,958769,958953,959456,960143,960491,960997,963610,964558,965470,965916,966525,966785,967098,978806,978893,978939,979104,980641-980642,980935,981051,981104,981123,981288,983920,983930,985163,985298,985473,985718,985856,985902,987841,989166,990127,990
 339,990539,991485,993344,993387,995384,995686,996069,996078-996079,996563,997418-997420,997423-997425,997431,997440,997526,997990,998061,998412,998557,1000621,1000725,1000998,1001099,1001131,1001185,1001574,1001849,1001962,1002963,1003434,1003450,1003829,1004139,1027756,1027960,1028053,1028625,1028627,1029600,1030016,1030385,1030390,1033928,1033953,1034138,1034179,1035080,1035084,1036426,1036669,1037507,1037559-1037560,1037567,1037883,1038228,1038990,1039256,1040044,1040091,1042009,1042034,1042038,1042132,1042188,1042222,1042317,1042348,1042396,1042411,1042950,1043861,1043996-1043998,1044047,1044084,1044912,1049031,1050602,1051111,1051450,1051812,1052195,1053285,1053289,1053722,1054565,1055057,1056072,1056305,1056803,1057519,1058028,1058056,1058488,1059180,1060236,1060261,1060368,1060933,1061167,1061307,1061346,1061886,1061939,1062138,1062144,1062152,1063273,1064090,1064953,1064993,1065550,1066048,1067097,1067942,1069597,1069965,1070193,1070229,1072017,1072378,1074624,107520
 5,1075952,1076027,1076115,1080218,1080959,1083144,1084572,1084671,1084689,1084855,1085697,1085774,1090952,1090961,1090964,1092479,1094126,1096441,1098063,1104423,1131144,1132589,1132749,1134649,1134990,1135199,1135686,1137201,1137435,1139346,1139385,1139504
+/ofbiz/trunk:939988,939990,939999,940025,940053,940234,940248,940309,940401,940410,940425,940779,940815,940849,940851,941007,941047,941109,941177,941199,941261,941440,941600,941999,942084,942406,942414,942671,942883-942884,943168,943271-943272,943843,944614,944621,944623,944647,944669,944797,944895,945010,945018,945026,945118,945573,945578,945580,945582,945610,945619,945848,945852,945857,946061,946066,946073,946075,946080,946309,946313,946320,946322,946596,947004-947005,947392,947424,947679,947988,948017,948694,949174,949710,949844,950866,950870,950893,951005,951062,951098,951251,951367,951381,951672,952232,952249,952270,953294,953671,954135,954583,954733,954956,955568,956022,956206,956340,957160,958343,958514,958521,958752,958758,958769,958953,959456,960143,960491,960997,963610,964558,965470,965916,966525,966785,967098,978806,978893,978939,979104,980641-980642,980935,981051,981104,981123,981288,983920,983930,985163,985298,985473,985718,985856,985902,987841,989166,990127,990
 339,990539,991485,993344,993387,995384,995686,996069,996078-996079,996563,997418-997420,997423-997425,997431,997440,997526,997990,998061,998412,998557,1000621,1000725,1000998,1001099,1001131,1001185,1001574,1001849,1001962,1002963,1003434,1003450,1003829,1004139,1027756,1027960,1028053,1028625,1028627,1029600,1030016,1030385,1030390,1033928,1033953,1034138,1034179,1035080,1035084,1036426,1036669,1037507,1037559-1037560,1037567,1037883,1038228,1038990,1039256,1040044,1040091,1042009,1042034,1042038,1042132,1042188,1042222,1042317,1042348,1042396,1042411,1042950,1043861,1043996-1043998,1044047,1044084,1044912,1049031,1050602,1051111,1051450,1051812,1052195,1053285,1053289,1053722,1054565,1055057,1056072,1056305,1056803,1057519,1058028,1058056,1058488,1059180,1060236,1060261,1060368,1060933,1061167,1061307,1061346,1061886,1061939,1062138,1062144,1062152,1063273,1064090,1064953,1064993,1065550,1066048,1067097,1067942,1069597,1069965,1070193,1070229,1072017,1072378,1074624,107520
 5,1075952,1076027,1076115,1080218,1080959,1083144,1084572,1084671,1084689,1084855,1085697,1085774,1090952,1090961,1090964,1092479,1094126,1096441,1098063,1104423,1131144,1132589,1132749,1134649,1134990,1135199,1135686,1137201,1137435,1139346,1139385,1139504,1140358

Modified: ofbiz/branches/release10.04/applications/product/src/org/ofbiz/product/config/ProductConfigItemContentWrapper.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release10.04/applications/product/src/org/ofbiz/product/config/ProductConfigItemContentWrapper.java?rev=1140366&r1=1140365&r2=1140366&view=diff
==============================================================================
--- ofbiz/branches/release10.04/applications/product/src/org/ofbiz/product/config/ProductConfigItemContentWrapper.java (original)
+++ ofbiz/branches/release10.04/applications/product/src/org/ofbiz/product/config/ProductConfigItemContentWrapper.java Mon Jun 27 23:17:39 2011
@@ -50,7 +50,8 @@ public class ProductConfigItemContentWra
 
     public static final String module = ProductConfigItemContentWrapper.class.getName();
 
-    protected LocalDispatcher dispatcher;
+    protected transient LocalDispatcher dispatcher;
+    protected String dispatcherName;
     protected GenericValue productConfigItem;
     protected Locale locale;
     protected String mimeTypeId;

Modified: ofbiz/branches/release10.04/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release10.04/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java?rev=1140366&r1=1140365&r2=1140366&view=diff
==============================================================================
--- ofbiz/branches/release10.04/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java (original)
+++ ofbiz/branches/release10.04/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java Mon Jun 27 23:17:39 2011
@@ -35,9 +35,11 @@ import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.UtilMisc;
 import org.ofbiz.base.util.UtilValidate;
 import org.ofbiz.entity.Delegator;
+import org.ofbiz.entity.DelegatorFactory;
 import org.ofbiz.entity.GenericEntityException;
 import org.ofbiz.entity.GenericValue;
 import org.ofbiz.entity.util.EntityUtil;
+import org.ofbiz.service.GenericDispatcher;
 import org.ofbiz.service.LocalDispatcher;
 
 
@@ -49,12 +51,14 @@ public class ProductConfigWrapper implem
 
     public static final String module = ProductConfigWrapper.class.getName();
 
-    protected LocalDispatcher dispatcher;
+    protected transient LocalDispatcher dispatcher;
+    protected String dispatcherName;
     protected String productStoreId;
     protected String catalogId;
     protected String webSiteId;
     protected String currencyUomId;
-    protected Delegator delegator;
+    protected transient Delegator delegator;
+    protected String delegatorName = null;
     protected GenericValue product = null; // the aggregated product
     protected GenericValue autoUserLogin = null;
     protected BigDecimal listPrice = BigDecimal.ZERO;
@@ -77,12 +81,14 @@ public class ProductConfigWrapper implem
         basePrice = pcw.basePrice;
         defaultPrice = pcw.defaultPrice;
         questions = FastList.newInstance();
-        dispatcher = pcw.dispatcher;
+        delegator = pcw.getDelegator();
+        delegatorName = delegator.getDelegatorName();
+        dispatcher = pcw.getDispatcher();
+        dispatcherName = dispatcher.getName();
         productStoreId = pcw.productStoreId;
         catalogId = pcw.catalogId;
         webSiteId = pcw.webSiteId;
         currencyUomId = pcw.currencyUomId;
-        delegator = pcw.delegator;
         autoUserLogin = pcw.autoUserLogin;
         for (ConfigItem ci: pcw.questions) {
             questions.add(new ConfigItem(ci));
@@ -95,11 +101,13 @@ public class ProductConfigWrapper implem
             throw new ProductConfigWrapperException("Product " + productId + " is not an AGGREGATED product.");
         }
         this.dispatcher = dispatcher;
+        this.dispatcherName = dispatcher.getName();
         this.productStoreId = productStoreId;
         this.catalogId = catalogId;
         this.webSiteId = webSiteId;
         this.currencyUomId = currencyUomId;
         this.delegator = delegator;
+        this.delegatorName = delegator.getDelegatorName();
         this.autoUserLogin = autoUserLogin;
 
         // get the list Price, the base Price
@@ -202,6 +210,20 @@ public class ProductConfigWrapper implem
         return configId;
     }
 
+    public Delegator getDelegator() {
+        if (delegator == null) {
+            delegator = DelegatorFactory.getDelegator(delegatorName);
+        }
+        return delegator;
+    }
+
+    public LocalDispatcher getDispatcher() {
+        if (dispatcher == null) {
+            dispatcher = GenericDispatcher.getLocalDispatcher(dispatcherName, this.getDelegator());
+        }
+        return dispatcher;
+    }
+
     @Override
     public boolean equals(Object obj) {
         if (!(obj instanceof ProductConfigWrapper)) {
@@ -607,7 +629,7 @@ public class ProductConfigWrapper implem
 
                 // Get the component's price
                 Map<String, Object> fieldMap = UtilMisc.toMap("product", oneComponentProduct, "prodCatalogId", pcw.catalogId, "webSiteId", pcw.webSiteId, "currencyUomId", pcw.currencyUomId, "productPricePurposeId", "COMPONENT_PRICE", "autoUserLogin", pcw.autoUserLogin, "productStoreId",productStoreId);
-                Map<String, Object> priceMap = dispatcher.runSync("calculateProductPrice", fieldMap);
+                Map<String, Object> priceMap = pcw.getDispatcher().runSync("calculateProductPrice", fieldMap);
                 BigDecimal componentListPrice = (BigDecimal) priceMap.get("listPrice");
                 BigDecimal componentPrice = (BigDecimal) priceMap.get("price");
                 Boolean validPriceFound = (Boolean)priceMap.get("validPriceFound");
@@ -627,7 +649,7 @@ public class ProductConfigWrapper implem
                     }
                 } else {
                     fieldMap.put("productPricePurposeId", "PURCHASE");
-                    Map<String, Object> purchasePriceResultMap = dispatcher.runSync("calculateProductPrice", fieldMap);
+                    Map<String, Object> purchasePriceResultMap = pcw.getDispatcher().runSync("calculateProductPrice", fieldMap);
                     BigDecimal purchaseListPrice = (BigDecimal) purchasePriceResultMap.get("listPrice");
                     BigDecimal purchasePrice = (BigDecimal) purchasePriceResultMap.get("price");
                     if (purchaseListPrice != null) {