This is an automated email from the ASF dual-hosted git repository. jdaugherty pushed a commit to branch grails-geb in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit c9b1a76cfa09768a127d13ef622dba256097a4b5 Author: James Daugherty <[email protected]> AuthorDate: Sun Apr 20 20:26:32 2025 -0400 Remove ignore and add test cleanup --- .../datastore/gorm/CustomAutoTimestampSpec.groovy | 11 +++++++---- .../gorm/events/AutoTimestampEventListener.java | 18 +++++++----------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/grails-datamapping-core-test/src/test/groovy/org/grails/datastore/gorm/CustomAutoTimestampSpec.groovy b/grails-datamapping-core-test/src/test/groovy/org/grails/datastore/gorm/CustomAutoTimestampSpec.groovy index 9fac49178d..7a06a67344 100644 --- a/grails-datamapping-core-test/src/test/groovy/org/grails/datastore/gorm/CustomAutoTimestampSpec.groovy +++ b/grails-datamapping-core-test/src/test/groovy/org/grails/datastore/gorm/CustomAutoTimestampSpec.groovy @@ -4,15 +4,15 @@ import grails.gorm.annotation.AutoTimestamp import grails.gorm.tests.GormDatastoreSpec import grails.persistence.Entity import org.grails.datastore.gorm.events.AutoTimestampEventListener -import spock.lang.Ignore +import spock.lang.Isolated +import spock.lang.Stepwise import static grails.gorm.annotation.AutoTimestamp.EventType.CREATED +@Isolated +@Stepwise class CustomAutoTimestampSpec extends GormDatastoreSpec { - // TODO: This test fails randomly in a parallel run. See https://github.com/apache/grails-data-mapping/issues/1877 - // for the likely cause - @Ignore void "Test when the auto timestamp properties are customized, they are correctly set"() { when:"An entity is persisted" def r = new RecordCustom(name: "Test") @@ -93,6 +93,9 @@ class CustomAutoTimestampSpec extends GormDatastoreSpec { then:"the custom lastUpdated property is updated and dateCreated is not" r.modified != null && previousModified < r.modified previousCreated.time == r.created.time + + cleanup: + (RecordCustom.gormPersistentEntity.mappingContext.eventListeners.find { it.class == AutoTimestampEventListener} as AutoTimestampEventListener).insertOverwrite = true } @Override diff --git a/grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/events/AutoTimestampEventListener.java b/grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/events/AutoTimestampEventListener.java index fbae03f0a1..7715851a41 100644 --- a/grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/events/AutoTimestampEventListener.java +++ b/grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/events/AutoTimestampEventListener.java @@ -14,11 +14,6 @@ */ package org.grails.datastore.gorm.events; -import java.lang.reflect.Field; -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentLinkedQueue; - import grails.gorm.annotation.AutoTimestamp; import org.grails.datastore.gorm.timestamp.DefaultTimestampProvider; import org.grails.datastore.gorm.timestamp.TimestampProvider; @@ -26,11 +21,7 @@ import org.grails.datastore.mapping.config.Entity; import org.grails.datastore.mapping.config.Settings; import org.grails.datastore.mapping.core.Datastore; import org.grails.datastore.mapping.engine.EntityAccess; -import org.grails.datastore.mapping.engine.event.AbstractPersistenceEvent; -import org.grails.datastore.mapping.engine.event.AbstractPersistenceEventListener; -import org.grails.datastore.mapping.engine.event.EventType; -import org.grails.datastore.mapping.engine.event.PreInsertEvent; -import org.grails.datastore.mapping.engine.event.PreUpdateEvent; +import org.grails.datastore.mapping.engine.event.*; import org.grails.datastore.mapping.model.ClassMapping; import org.grails.datastore.mapping.model.MappingContext; import org.grails.datastore.mapping.model.PersistentEntity; @@ -38,6 +29,11 @@ import org.grails.datastore.mapping.model.PersistentProperty; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationEvent; +import java.lang.reflect.Field; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentLinkedQueue; + /** * An event listener that adds support for GORM-style auto-timestamping * @@ -48,7 +44,7 @@ public class AutoTimestampEventListener extends AbstractPersistenceEventListener // if false, will not set timestamp on insert event if value is not null @Value("${" + Settings.SETTING_AUTO_TIMESTAMP_INSERT_OVERWRITE + ":true}") - boolean insertOverwrite = true; + public boolean insertOverwrite = true; public static final String DATE_CREATED_PROPERTY = "dateCreated"; public static final String LAST_UPDATED_PROPERTY = "lastUpdated";
