From 75bc20b404beb51e7cc3b1bc7d2912a78797a112 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Sun, 2 Jan 2022 06:26:58 +0100 Subject: [PATCH] IDEMPIERE-5131 Base language cannot be changed by process 'change base language' (#1100) --- .../src/org/idempiere/process/ChangeBaseLanguage.java | 6 ++++-- .../src/org/compiere/install/Translation.java | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/org.adempiere.base.process/src/org/idempiere/process/ChangeBaseLanguage.java b/org.adempiere.base.process/src/org/idempiere/process/ChangeBaseLanguage.java index 1b99186959..8a9c8a4143 100644 --- a/org.adempiere.base.process/src/org/idempiere/process/ChangeBaseLanguage.java +++ b/org.adempiere.base.process/src/org/idempiere/process/ChangeBaseLanguage.java @@ -72,7 +72,8 @@ public class ChangeBaseLanguage extends SvrProcess if (Util.isEmpty(p_Language)) throw new AdempiereUserError("Language required"); - MLanguage lang = MLanguage.get(getCtx(), p_Language); + MLanguage langCached = MLanguage.get(getCtx(), p_Language); + MLanguage lang = new MLanguage(getCtx(), langCached.getAD_Language_ID(), get_TrxName()); if (lang.isBaseLanguage()) throw new AdempiereUserError("Same base language"); if (lang.isSystemLanguage()) @@ -82,7 +83,8 @@ public class ChangeBaseLanguage extends SvrProcess throw new AdempiereUserError("Same base language"); // Disable the base flag on the actual - MLanguage baselang = MLanguage.get(getCtx(), Language.getBaseAD_Language()); + MLanguage baselangCached = MLanguage.get(getCtx(), Language.getBaseAD_Language()); + MLanguage baselang = new MLanguage(getCtx(), baselangCached.getAD_Language_ID(), get_TrxName()); baselang.setIsBaseLanguage(false); baselang.saveEx(get_TrxName()); diff --git a/org.adempiere.base/src/org/compiere/install/Translation.java b/org.adempiere.base/src/org/compiere/install/Translation.java index 21bc01c533..2b5dcb6f68 100644 --- a/org.adempiere.base/src/org/compiere/install/Translation.java +++ b/org.adempiere.base/src/org/compiere/install/Translation.java @@ -152,7 +152,8 @@ public class Translation implements IApplication SAXParser parser = factory.newSAXParser(); parser.parse(in, handler); if (log.isLoggable(Level.INFO)) log.info("Updated=" + handler.getUpdateCount()); - MLanguage lang = MLanguage.get(m_ctx, AD_Language); + MLanguage langCached = MLanguage.get(m_ctx, AD_Language); + MLanguage lang = new MLanguage(m_ctx, langCached.getAD_Language_ID(), null); if (! lang.isLoginLocale()) { lang.setIsLoginLocale(true); lang.saveEx();