This is an automated email from the ASF dual-hosted git repository. nmalin pushed a commit to branch release24.09 in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git
The following commit(s) were added to refs/heads/release24.09 by this push: new b373743702 Improved: Optimization on removeJob service (OFBIZ-13182) b373743702 is described below commit b3737437020b92b39cf8b760934e2bfa9b1dea03 Author: Nicolas Malin <nicolas.ma...@nereide.fr> AuthorDate: Wed Nov 20 09:53:30 2024 +0100 Improved: Optimization on removeJob service (OFBIZ-13182) On removeJob service when we'll remove a job sandbox, we also delete other element linked (RecurrenceInfo and RuntimeData). Before their remove we control that no other job are connected to them, but currently we resolve the list and ensure that it empty. To be fast, we just ask the database through a count and ensure that is zero. --- .../src/main/java/org/apache/ofbiz/service/job/JobUtil.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/framework/service/src/main/java/org/apache/ofbiz/service/job/JobUtil.java b/framework/service/src/main/java/org/apache/ofbiz/service/job/JobUtil.java index 7f8b94e930..ca5e973931 100644 --- a/framework/service/src/main/java/org/apache/ofbiz/service/job/JobUtil.java +++ b/framework/service/src/main/java/org/apache/ofbiz/service/job/JobUtil.java @@ -18,13 +18,13 @@ *******************************************************************************/ package org.apache.ofbiz.service.job; -import java.util.List; import javax.transaction.Transaction; import org.apache.ofbiz.base.util.Debug; import org.apache.ofbiz.entity.GenericEntityException; import org.apache.ofbiz.entity.GenericValue; import org.apache.ofbiz.entity.transaction.GenericTransactionException; import org.apache.ofbiz.entity.transaction.TransactionUtil; +import org.apache.ofbiz.entity.util.EntityQuery; public final class JobUtil { @@ -43,16 +43,18 @@ public final class JobUtil { jobValue.remove(); GenericValue relatedValue = jobValue.getRelatedOne("RecurrenceInfo", false); if (relatedValue != null) { - List<GenericValue> valueList = relatedValue.getRelated("JobSandbox", null, null, false); - if (valueList.isEmpty()) { + if (EntityQuery.use(jobValue.getDelegator()).from("JobSandbox") + .where("recurrenceInfoId", relatedValue.get("recurrenceInfoId")) + .queryCount() == 0) { relatedValue.remove(); relatedValue.removeRelated("RecurrenceRule"); } } relatedValue = jobValue.getRelatedOne("RuntimeData", false); if (relatedValue != null) { - List<GenericValue> valueList = relatedValue.getRelated("JobSandbox", null, null, false); - if (valueList.isEmpty()) { + if (EntityQuery.use(jobValue.getDelegator()).from("JobSandbox") + .where("runtimeDataId", relatedValue.get("runtimeDataId")) + .queryCount() == 0) { relatedValue.remove(); } }