Author: jleroux
Date: Wed May 18 12:00:10 2016
New Revision: 1744400

URL: http://svn.apache.org/viewvc?rev=1744400&view=rev
Log:
"Applied fix from trunk for revision: 1744396" 
------------------------------------------------------------------------
r1744396 | jleroux | 2016-05-18 13:52:44 +0200 (mer. 18 mai 2016) | 5 lignes

An enhanced patch from Ingo Wolfmayr for "CategoryContent & ProductContent 
cachekey problem on multi tenant environment" 
https://issues.apache.org/jira/browse/OFBIZ-7071

When creating a blog-entry with empty article text, it is not possible to add 
update the article. Content entry is created but not assigned to contentId of 
blog-entry. The attached patch fixes this.

jleroux: I extended to all possible cases in "content contex"t and checked that 
there was no cases outside "content context"
------------------------------------------------------------------------


Modified:
    ofbiz/branches/release15.12/   (props changed)
    
ofbiz/branches/release15.12/applications/order/src/org/ofbiz/order/order/OrderContentWrapper.java
    
ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/category/CategoryContentWrapper.java
    
ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/config/ProductConfigItemContentWrapper.java
    
ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/config/ProductConfigWorker.java
    
ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/product/ProductContentWrapper.java
    
ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/product/ProductPromoContentWrapper.java

Propchange: ofbiz/branches/release15.12/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed May 18 12:00:10 2016
@@ -9,4 +9,4 @@
 /ofbiz/branches/json-integration-refactoring:1634077-1635900
 /ofbiz/branches/multitenant20100310:921280-927264
 /ofbiz/branches/release13.07:1547657
-/ofbiz/trunk:1722712,1723007,1723248,1724402,1724411,1724566,1724689,1724763,1724916,1724918,1724925,1724930,1724940,1724943,1724946,1724951,1724957,1724975,1724978,1725006,1725217,1725257,1725561,1725574,1726388,1726486,1726493,1726828,1727894,1728398,1728411,1729005,1729078,1729609,1729809,1730035,1730456,1730735-1730736,1730747,1730758,1730882,1730889,1731382,1731396,1732454,1732570,1732721,1733951,1733956,1734246,1734269,1734276,1734912,1734918,1735021,1735244,1735385,1735398,1735569,1735731,1735734,1735750,1735753,1735756,1735759,1735773,1736083,1736087,1736272,1736434,1736628,1736851,1736854,1736890,1737156,1737440,1738235,1738303,1738407,1738902,1739438,1739448,1739571,1740008,1740442,1740629,1741146,1741563,1741684,1741925,1741930,1741960,1742018,1742097,1742103,1742712,1742737,1742741,1743025,1743027,1743230,1743411-1743412,1743656,1743937,1744117,1744198
+/ofbiz/trunk:1722712,1723007,1723248,1724402,1724411,1724566,1724689,1724763,1724916,1724918,1724925,1724930,1724940,1724943,1724946,1724951,1724957,1724975,1724978,1725006,1725217,1725257,1725561,1725574,1726388,1726486,1726493,1726828,1727894,1728398,1728411,1729005,1729078,1729609,1729809,1730035,1730456,1730735-1730736,1730747,1730758,1730882,1730889,1731382,1731396,1732454,1732570,1732721,1733951,1733956,1734246,1734269,1734276,1734912,1734918,1735021,1735244,1735385,1735398,1735569,1735731,1735734,1735750,1735753,1735756,1735759,1735773,1736083,1736087,1736272,1736434,1736628,1736851,1736854,1736890,1737156,1737440,1738235,1738303,1738407,1738902,1739438,1739448,1739571,1740008,1740442,1740629,1741146,1741563,1741684,1741925,1741930,1741960,1742018,1742097,1742103,1742712,1742737,1742741,1743025,1743027,1743230,1743411-1743412,1743656,1743937,1744117,1744198,1744396

Modified: 
ofbiz/branches/release15.12/applications/order/src/org/ofbiz/order/order/OrderContentWrapper.java
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/release15.12/applications/order/src/org/ofbiz/order/order/OrderContentWrapper.java?rev=1744400&r1=1744399&r2=1744400&view=diff
==============================================================================
--- 
ofbiz/branches/release15.12/applications/order/src/org/ofbiz/order/order/OrderContentWrapper.java
 (original)
+++ 
ofbiz/branches/release15.12/applications/order/src/org/ofbiz/order/order/OrderContentWrapper.java
 Wed May 18 12:00:10 2016
@@ -98,7 +98,7 @@ public class OrderContentWrapper impleme
 
         String orderItemSeqId = (order.getEntityName().equals("OrderItem")? 
order.getString("orderItemSeqId"): "_NA_");
 
-        String cacheKey = orderContentTypeId + SEPARATOR + locale + SEPARATOR 
+ mimeTypeId + SEPARATOR + order.get("orderId") + SEPARATOR + orderItemSeqId + 
SEPARATOR + encoderType;
+        String cacheKey = orderContentTypeId + SEPARATOR + locale + SEPARATOR 
+ mimeTypeId + SEPARATOR + order.get("orderId") + SEPARATOR + orderItemSeqId + 
SEPARATOR + encoderType + SEPARATOR + delegator;
         try {
             String cachedValue = orderContentCache.get(cacheKey);
             if (cachedValue != null) {

Modified: 
ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/category/CategoryContentWrapper.java
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/category/CategoryContentWrapper.java?rev=1744400&r1=1744399&r2=1744400&view=diff
==============================================================================
--- 
ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/category/CategoryContentWrapper.java
 (original)
+++ 
ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/category/CategoryContentWrapper.java
 Wed May 18 12:00:10 2016
@@ -97,7 +97,7 @@ public class CategoryContentWrapper impl
     public static String getProductCategoryContentAsText(GenericValue 
productCategory, String prodCatContentTypeId, Locale locale, String mimeTypeId, 
Delegator delegator, LocalDispatcher dispatcher, String encoderType) {
         String candidateFieldName = 
ModelUtil.dbNameToVarName(prodCatContentTypeId);
         UtilCodec.SimpleEncoder encoder = UtilCodec.getEncoder(encoderType);
-        String cacheKey = prodCatContentTypeId + SEPARATOR + locale + 
SEPARATOR + mimeTypeId + SEPARATOR + productCategory.get("productCategoryId") + 
SEPARATOR + encoderType;
+        String cacheKey = prodCatContentTypeId + SEPARATOR + locale + 
SEPARATOR + mimeTypeId + SEPARATOR + productCategory.get("productCategoryId") + 
SEPARATOR + encoderType + SEPARATOR + delegator;
         try {
             String cachedValue = categoryContentCache.get(cacheKey);
             if (cachedValue != null) {

Modified: 
ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/config/ProductConfigItemContentWrapper.java
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/config/ProductConfigItemContentWrapper.java?rev=1744400&r1=1744399&r2=1744400&view=diff
==============================================================================
--- 
ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/config/ProductConfigItemContentWrapper.java
 (original)
+++ 
ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/config/ProductConfigItemContentWrapper.java
 Wed May 18 12:00:10 2016
@@ -120,7 +120,7 @@ public class ProductConfigItemContentWra
     public static String getProductConfigItemContentAsText(GenericValue 
productConfigItem, String confItemContentTypeId, Locale locale, String 
mimeTypeId, Delegator delegator, LocalDispatcher dispatcher, String 
encoderType) {
         UtilCodec.SimpleEncoder encoder = UtilCodec.getEncoder(encoderType);
         String candidateFieldName = 
ModelUtil.dbNameToVarName(confItemContentTypeId);
-        String cacheKey = confItemContentTypeId + SEPARATOR + locale + 
SEPARATOR + mimeTypeId + SEPARATOR + productConfigItem.get("configItemId") + 
SEPARATOR + encoderType;
+        String cacheKey = confItemContentTypeId + SEPARATOR + locale + 
SEPARATOR + mimeTypeId + SEPARATOR + productConfigItem.get("configItemId") + 
SEPARATOR + encoderType + SEPARATOR + delegator;
         try {
             String cachedValue = configItemContentCache.get(cacheKey);
             if (cachedValue != null) {

Modified: 
ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/config/ProductConfigWorker.java
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/config/ProductConfigWorker.java?rev=1744400&r1=1744399&r2=1744400&view=diff
==============================================================================
--- 
ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/config/ProductConfigWorker.java
 (original)
+++ 
ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/config/ProductConfigWorker.java
 Wed May 18 12:00:10 2016
@@ -18,11 +18,11 @@
  
*******************************************************************************/
 package org.ofbiz.product.config;
 
+import java.util.Enumeration;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
-import java.util.Enumeration;
 
 import javax.servlet.http.HttpServletRequest;
 
@@ -31,6 +31,7 @@ import org.ofbiz.base.util.UtilGenerics;
 import org.ofbiz.base.util.UtilHttp;
 import org.ofbiz.base.util.UtilProperties;
 import org.ofbiz.base.util.UtilValidate;
+import org.ofbiz.base.util.cache.UtilCache;
 import org.ofbiz.entity.Delegator;
 import org.ofbiz.entity.GenericEntityException;
 import org.ofbiz.entity.GenericValue;
@@ -42,7 +43,6 @@ import org.ofbiz.product.product.Product
 import org.ofbiz.product.store.ProductStoreWorker;
 import org.ofbiz.service.LocalDispatcher;
 import org.ofbiz.webapp.website.WebSiteWorker;
-import org.ofbiz.base.util.cache.UtilCache;
 
 /**
  * Product Config Worker class to reduce code in templates.
@@ -65,7 +65,8 @@ public class ProductConfigWorker {
             /* caching: there is one cache created, "product.config"  Each 
product's config wrapper is cached with a key of
              * productId::catalogId::webSiteId::currencyUomId, or whatever the 
SEPARATOR is defined above to be.
              */
-            String cacheKey = productId + SEPARATOR + productStoreId + 
SEPARATOR + catalogId + SEPARATOR + webSiteId + SEPARATOR + currencyUomId;
+            Delegator delegator = (Delegator) 
request.getAttribute("delegator");
+            String cacheKey = productId + SEPARATOR + productStoreId + 
SEPARATOR + catalogId + SEPARATOR + webSiteId + SEPARATOR + currencyUomId + 
SEPARATOR + delegator;
             configWrapper = productConfigCache.get(cacheKey);
             if (configWrapper == null) {
                 configWrapper = new 
ProductConfigWrapper((Delegator)request.getAttribute("delegator"),
@@ -345,7 +346,7 @@ public class ProductConfigWorker {
                         List<GenericValue> components = 
oneOption.getComponents();
                         for (GenericValue component: components) {
                             if (oneOption.isVirtualComponent(component) && 
UtilValidate.isNotEmpty(componentOptions)) {
-                               String  componentOption = 
componentOptions.get(component.getString("productId"));
+                                String  componentOption = 
componentOptions.get(component.getString("productId"));
                                 GenericValue configOptionProductOption = 
delegator.makeValue("ConfigOptionProductOption");
                                 configOptionProductOption.put("configId", 
configId);
                                 configOptionProductOption.put("configItemId", 
configItemId);

Modified: 
ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/product/ProductContentWrapper.java
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/product/ProductContentWrapper.java?rev=1744400&r1=1744399&r2=1744400&view=diff
==============================================================================
--- 
ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/product/ProductContentWrapper.java
 (original)
+++ 
ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/product/ProductContentWrapper.java
 Wed May 18 12:00:10 2016
@@ -109,7 +109,7 @@ public class ProductContentWrapper imple
         /* caching: there is one cache created, "product.content"  Each 
product's content is cached with a key of
          * contentTypeId::locale::mimeType::productId, or whatever the 
SEPARATOR is defined above to be.
          */
-        String cacheKey = productContentTypeId + SEPARATOR + locale + 
SEPARATOR + mimeTypeId + SEPARATOR + product.get("productId") + SEPARATOR + 
encoderType;
+        String cacheKey = productContentTypeId + SEPARATOR + locale + 
SEPARATOR + mimeTypeId + SEPARATOR + product.get("productId") + SEPARATOR + 
encoderType + SEPARATOR + delegator;
         try {
             String cachedValue = productContentCache.get(cacheKey);
             if (cachedValue != null) {

Modified: 
ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/product/ProductPromoContentWrapper.java
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/product/ProductPromoContentWrapper.java?rev=1744400&r1=1744399&r2=1744400&view=diff
==============================================================================
--- 
ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/product/ProductPromoContentWrapper.java
 (original)
+++ 
ofbiz/branches/release15.12/applications/product/src/org/ofbiz/product/product/ProductPromoContentWrapper.java
 Wed May 18 12:00:10 2016
@@ -114,7 +114,7 @@ public class ProductPromoContentWrapper
         /* caching: there is one cache created, "product.promo.content"  Each 
productPromo's content is cached with a key of
          * contentTypeId::locale::mimeType::productPromoId, or whatever the 
SEPARATOR is defined above to be.
          */
-        String cacheKey = productPromoContentTypeId + SEPARATOR + locale + 
SEPARATOR + mimeTypeId + SEPARATOR + productPromo.get("productPromoId") + 
SEPARATOR + encoderType;
+        String cacheKey = productPromoContentTypeId + SEPARATOR + locale + 
SEPARATOR + mimeTypeId + SEPARATOR + productPromo.get("productPromoId") + 
SEPARATOR + encoderType + SEPARATOR + delegator;
         try {
             String cachedValue = productPromoContentCache.get(cacheKey);
             if (cachedValue != null) {


Reply via email to