From 735a735fbb55142d65a696ed16a0efb31dfa40b7 Mon Sep 17 00:00:00 2001 From: Diego Ruiz <12065321+d-ruiz@users.noreply.github.com> Date: Sun, 14 Jan 2024 15:07:01 +0100 Subject: [PATCH] =?UTF-8?q?IDEMPIERE-5996=20-=20Added=20the=20functionalit?= =?UTF-8?q?y=20of=20resetting=20cache=20after=20cre=E2=80=A6=20(#2186)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * IDEMPIERE-5996 - Added the functionality of resetting cache after creating a record access restriction * Update MRecordAccess.java --------- Co-authored-by: Carlos Ruiz --- .../src/org/compiere/model/MRecordAccess.java | 42 +++++++++++++------ 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/org.adempiere.base/src/org/compiere/model/MRecordAccess.java b/org.adempiere.base/src/org/compiere/model/MRecordAccess.java index 94188f42ba..cd6cdab63c 100644 --- a/org.adempiere.base/src/org/compiere/model/MRecordAccess.java +++ b/org.adempiere.base/src/org/compiere/model/MRecordAccess.java @@ -21,6 +21,8 @@ import java.sql.ResultSet; import java.util.Properties; import java.util.logging.Level; +import org.compiere.Adempiere; +import org.compiere.util.CacheMgt; import org.compiere.util.DB; import org.compiere.util.Msg; @@ -33,20 +35,20 @@ import org.compiere.util.Msg; public class MRecordAccess extends X_AD_Record_Access { /** - * generated serial id + * */ - private static final long serialVersionUID = -5115765616266528435L; + private static final long serialVersionUID = -3608241027957009608L; + + /** + * UUID based Constructor + * @param ctx Context + * @param AD_Record_Access_UU UUID key + * @param trxName Transaction + */ + public MRecordAccess(Properties ctx, String AD_Record_Access_UU, String trxName) { + super(ctx, AD_Record_Access_UU, trxName); + } - /** - * UUID based Constructor - * @param ctx Context - * @param AD_Record_Access_UU UUID key - * @param trxName Transaction - */ - public MRecordAccess(Properties ctx, String AD_Record_Access_UU, String trxName) { - super(ctx, AD_Record_Access_UU, trxName); - } - /** * @param ctx context * @param ignored ignored @@ -287,5 +289,21 @@ public class MRecordAccess extends X_AD_Record_Access } return m_tableName; } // getTableName + + /** + * After Save + * @param newRecord new + * @param success success + * @return success + */ + @Override + protected boolean afterSave(boolean newRecord, boolean success) { + if (!success) + return success; + + Adempiere.getThreadPoolExecutor().submit(() -> CacheMgt.get().reset(MRole.Table_Name, getAD_Role_ID())); + + return success; + } // afterSave } // MRecordAccess