From c05d2cefa9cf9d9afa28bc4bb55f406ffc24070a Mon Sep 17 00:00:00 2001 From: hengsin Date: Sat, 20 May 2023 09:50:13 +0800 Subject: [PATCH] IDEMPIERE-5726 2Pack: TableElementHandler should reset Table cache after commit of transaction (#1843) --- .../pipo2/handler/TableElementHandler.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/TableElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/TableElementHandler.java index 31b5ad820b..1813a6f7d4 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/TableElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/TableElementHandler.java @@ -45,8 +45,10 @@ import org.compiere.model.X_AD_Package_Exp_Detail; import org.compiere.model.X_AD_Package_Imp_Detail; import org.compiere.model.X_AD_Table; import org.compiere.process.DatabaseViewValidate; +import org.compiere.util.CacheMgt; import org.compiere.util.Env; import org.compiere.util.Trx; +import org.compiere.util.TrxEventListener; import org.xml.sax.SAXException; import org.xml.sax.helpers.AttributesImpl; @@ -123,6 +125,27 @@ public class TableElementHandler extends AbstractElementHandler { throw new DatabaseAccessException("Failed to validate view for " + mTable.getName()); } } + + Trx trx = Trx.get(getTrxName(ctx), false); + if (trx != null && !mTable.isView()) { + trx.addTrxEventListener(new TrxEventListener() { + + @Override + public void afterRollback(Trx trx, boolean success) { + } + + @Override + public void afterCommit(Trx trx, boolean success) { + if (success) { + CacheMgt.get().reset(MTable.Table_Name, mTable.get_ID()); + } + } + + @Override + public void afterClose(Trx trx) { + } + }); + } } private int validateDatabaseView(PIPOContext ctx, MTable table)