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;
}