From 77ca3a2ce0102c56b2f17dd724a806ee2649492a Mon Sep 17 00:00:00 2001 From: Adam Saghy Date: Wed, 3 Aug 2022 19:00:14 +0200 Subject: [PATCH] Fix race condition of CustomAuditingHandler's DateTimeProvider --- .../{ => core}/auditing/CustomAuditingHandler.java | 3 +-- .../core/auditing/JpaAuditingHandlerRegistrar.java | 6 +++--- .../data/auditing/CustomAuditingHandlerTest.java | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) rename fineract-provider/src/main/java/org/apache/fineract/infrastructure/{ => core}/auditing/CustomAuditingHandler.java (96%) diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/auditing/CustomAuditingHandler.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/auditing/CustomAuditingHandler.java similarity index 96% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/auditing/CustomAuditingHandler.java rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/auditing/CustomAuditingHandler.java index 480769feb..74910ae8b 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/auditing/CustomAuditingHandler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/auditing/CustomAuditingHandler.java @@ -16,9 +16,8 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.fineract.infrastructure.auditing; +package org.apache.fineract.infrastructure.core.auditing; -import org.apache.fineract.infrastructure.core.auditing.CustomDateTimeProvider; import org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom; import org.jetbrains.annotations.NotNull; import org.springframework.data.auditing.AuditableBeanWrapper; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/auditing/JpaAuditingHandlerRegistrar.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/auditing/JpaAuditingHandlerRegistrar.java index 1375e8bbe..687efa35b 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/auditing/JpaAuditingHandlerRegistrar.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/auditing/JpaAuditingHandlerRegistrar.java @@ -18,7 +18,6 @@ */ package org.apache.fineract.infrastructure.core.auditing; -import org.apache.fineract.infrastructure.auditing.CustomAuditingHandler; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.context.annotation.ImportBeanDefinitionRegistrar; @@ -28,7 +27,8 @@ public class JpaAuditingHandlerRegistrar implements ImportBeanDefinitionRegistra @Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { - registry.registerBeanDefinition("jpaAuditingHandler", BeanDefinitionBuilder.rootBeanDefinition(CustomAuditingHandler.class) - .addConstructorArgReference("jpaMappingContext").addConstructorArgReference("auditorAware").getBeanDefinition()); + registry.registerBeanDefinition("jpaAuditingHandler", + BeanDefinitionBuilder.rootBeanDefinition(CustomAuditingHandler.class).addConstructorArgReference("jpaMappingContext") + .addConstructorArgReference("auditorAware").setScope("prototype").getBeanDefinition()); } } diff --git a/fineract-provider/src/test/java/org/springframework/data/auditing/CustomAuditingHandlerTest.java b/fineract-provider/src/test/java/org/springframework/data/auditing/CustomAuditingHandlerTest.java index a5f7e15c2..39f37c40e 100644 --- a/fineract-provider/src/test/java/org/springframework/data/auditing/CustomAuditingHandlerTest.java +++ b/fineract-provider/src/test/java/org/springframework/data/auditing/CustomAuditingHandlerTest.java @@ -27,8 +27,8 @@ import java.time.OffsetDateTime; import java.time.ZoneId; import java.util.HashMap; import java.util.Map; -import org.apache.fineract.infrastructure.auditing.CustomAuditingHandler; import org.apache.fineract.infrastructure.businessdate.domain.BusinessDateType; +import org.apache.fineract.infrastructure.core.auditing.CustomAuditingHandler; import org.apache.fineract.infrastructure.core.domain.AbstractAuditableCustom; import org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom; import org.apache.fineract.infrastructure.core.domain.FineractPlatformTenant;