You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by mb...@apache.org on 2017/07/04 12:59:58 UTC

svn commit: r1800781 - in /ofbiz/branches/release16.11: ./ applications/content/src/main/java/org/apache/ofbiz/content/content/ContentWorker.java

Author: mbrohl
Date: Tue Jul  4 12:59:58 2017
New Revision: 1800781

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

Fixed: ContentWorker#findAlternateLocaleContent(Delegator, GenericValue, Locale)
does not use fallback locale.
(OFBIZ-9445)

If no alternate locale content for the requested locale is found, search for an 
alternate locale content with the locale configured in general.properties at 
locale.properties.fallback. If this one isn't found either we can still return 
the original content.

Thanks Tobias Laufkötter for reporting and providing the patch.

Modified:
    ofbiz/branches/release16.11/   (props changed)
    ofbiz/branches/release16.11/applications/content/src/main/java/org/apache/ofbiz/content/content/ContentWorker.java

Propchange: ofbiz/branches/release16.11/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jul  4 12:59:58 2017
@@ -10,5 +10,5 @@
 /ofbiz/branches/json-integration-refactoring:1634077-1635900
 /ofbiz/branches/multitenant20100310:921280-927264
 /ofbiz/branches/release13.07:1547657
-/ofbiz/ofbiz-framework/trunk:1783202,1783388,1784549,1784558,1784708,1785882,1785925,1786079,1786214,1786525,1787047,1787133,1787176,1787535,1787906-1787911,1787949,1789665,1789863,1789874,1790396,1790810,1791277,1791288,1791342,1791346,1791490,1791496,1791625,1791634,1791791,1791804,1792270,1792272,1792275,1792432,1792609,1792638,1794008,1794132,1796047,1796262,1797733,1798668,1798682,1798796,1798803,1798808,1799088,1799183,1799327,1799417,1799687,1799767,1799793,1799859,1800250
+/ofbiz/ofbiz-framework/trunk:1783202,1783388,1784549,1784558,1784708,1785882,1785925,1786079,1786214,1786525,1787047,1787133,1787176,1787535,1787906-1787911,1787949,1789665,1789863,1789874,1790396,1790810,1791277,1791288,1791342,1791346,1791490,1791496,1791625,1791634,1791791,1791804,1792270,1792272,1792275,1792432,1792609,1792638,1794008,1794132,1796047,1796262,1797733,1798668,1798682,1798796,1798803,1798808,1799088,1799183,1799327,1799417,1799687,1799767,1799793,1799859,1800250,1800780
 /ofbiz/trunk:1770481,1770490,1770540,1771440,1771448,1771516,1771935,1772346,1772880,1774772,1775441,1779724,1780659,1781109,1781125,1781979,1782498,1782520

Modified: ofbiz/branches/release16.11/applications/content/src/main/java/org/apache/ofbiz/content/content/ContentWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release16.11/applications/content/src/main/java/org/apache/ofbiz/content/content/ContentWorker.java?rev=1800781&r1=1800780&r2=1800781&view=diff
==============================================================================
--- ofbiz/branches/release16.11/applications/content/src/main/java/org/apache/ofbiz/content/content/ContentWorker.java (original)
+++ ofbiz/branches/release16.11/applications/content/src/main/java/org/apache/ofbiz/content/content/ContentWorker.java Tue Jul  4 12:59:58 2017
@@ -40,6 +40,7 @@ import org.apache.ofbiz.base.util.UtilCo
 import org.apache.ofbiz.base.util.UtilDateTime;
 import org.apache.ofbiz.base.util.UtilGenerics;
 import org.apache.ofbiz.base.util.UtilMisc;
+import org.apache.ofbiz.base.util.UtilProperties;
 import org.apache.ofbiz.base.util.UtilValidate;
 import org.apache.ofbiz.base.util.string.FlexibleStringExpander;
 import org.apache.ofbiz.content.ContentManagementWorker;
@@ -395,9 +396,9 @@ public class ContentWorker implements or
     }
 
     public static GenericValue findAlternateLocaleContent(Delegator delegator, GenericValue view, Locale locale) {
-        GenericValue contentAssocDataResourceViewFrom = view;
+        GenericValue contentAssocDataResourceViewFrom = null;
         if (locale == null) {
-            return contentAssocDataResourceViewFrom;
+            return view;
         }
 
         String localeStr = locale.toString();
@@ -408,9 +409,12 @@ public class ContentWorker implements or
             alternateViews = view.getRelated("ContentAssocDataResourceViewTo", UtilMisc.toMap("caContentAssocTypeId", "ALTERNATE_LOCALE"), UtilMisc.toList("-caFromDate"), true);
         } catch (GenericEntityException e) {
             Debug.logError(e, "Error finding alternate locale content: " + e.toString(), module);
-            return contentAssocDataResourceViewFrom;
+            return view;
         }
 
+        // also check the given view for a matching locale
+        alternateViews.add(0, view);
+
         alternateViews = EntityUtil.filterByDate(alternateViews, UtilDateTime.nowTimestamp(), "caFromDate", "caThruDate", true);
         for (GenericValue thisView : alternateViews) {
             String currentLocaleString = thisView.getString("localeString");
@@ -450,6 +454,14 @@ public class ContentWorker implements or
             }
         }
 
+        if (contentAssocDataResourceViewFrom == null) {
+            // no content matching the given locale found.
+            Locale fallbackLocale = UtilProperties.getFallbackLocale();
+            contentAssocDataResourceViewFrom = locale.equals(fallbackLocale) ? view
+                    // only search for a content with the fallbackLocale if it is different to the given locale
+                    : findAlternateLocaleContent(delegator, view, fallbackLocale);
+        }
+
         return contentAssocDataResourceViewFrom;
     }