diff --git a/org.adempiere.base/src/org/compiere/model/MOrg.java b/org.adempiere.base/src/org/compiere/model/MOrg.java index c999c59f6a..c14abbab3e 100644 --- a/org.adempiere.base/src/org/compiere/model/MOrg.java +++ b/org.adempiere.base/src/org/compiere/model/MOrg.java @@ -20,8 +20,11 @@ import java.sql.ResultSet; import java.util.List; import java.util.Properties; +import org.compiere.util.CacheMgt; import org.compiere.util.DB; import org.compiere.util.Env; +import org.compiere.util.Trx; +import org.compiere.util.TrxEventListener; import org.idempiere.cache.ImmutableIntPOCache; import org.idempiere.cache.ImmutablePOSupport; @@ -210,7 +213,23 @@ public class MOrg extends X_AD_Org implements ImmutablePOSupport if ("Y".equals(Env.getContext(getCtx(), "$Element_OT"))) MAccount.updateValueDescription(getCtx(), "AD_OrgTrx_ID=" + getAD_Org_ID(), get_TrxName()); } - + + Trx.get(get_TrxName(), false).addTrxEventListener(new TrxEventListener() { + @Override + public void afterRollback(Trx trx, boolean success) { + } + + @Override + public void afterCommit(Trx trx, boolean success) { + MRole.getDefault().loadAccess(true); + CacheMgt.get().reset(); + } + + @Override + public void afterClose(Trx trx) { + } + }); + return true; } // afterSave