From 9d4f34a6ff457b198860f9dffe7d5575f4287f0c Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Tue, 28 Feb 2017 20:05:35 +0100 Subject: [PATCH] DATAMONGO-1617 - Reinstantiate version property initialization before BeforeConvertEvent publication. Related pull request: #443. --- .../data/mongodb/core/MongoTemplate.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java index 8cea8fe3b..1f3fd76fe 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java @@ -766,7 +766,7 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware { public long count(Query query, Class entityClass, String collectionName) { Assert.hasText(collectionName, "Collection name must not be null or empty!"); - + final DBObject dbObject = query == null ? null : queryMapper.getMappedObject(query.getQueryObject(), entityClass == null ? null : mappingContext.getPersistentEntity(entityClass)); @@ -845,11 +845,10 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware { protected void doInsert(String collectionName, T objectToSave, MongoWriter writer) { + initializeVersionProperty(objectToSave); maybeEmitEvent(new BeforeConvertEvent(objectToSave, collectionName)); assertUpdateableIdIfNotSet(objectToSave); - initializeVersionProperty(objectToSave); - DBObject dbDoc = toDbObject(objectToSave, writer); maybeEmitEvent(new BeforeSaveEvent(objectToSave, dbDoc, collectionName)); @@ -939,12 +938,13 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware { Assert.notNull(writer, "MongoWriter must not be null!"); List dbObjectList = new ArrayList(); + for (T o : batchToSave) { initializeVersionProperty(o); - BasicDBObject dbDoc = new BasicDBObject(); - maybeEmitEvent(new BeforeConvertEvent(o, collectionName)); + + BasicDBObject dbDoc = new BasicDBObject(); writer.write(o, dbDoc); maybeEmitEvent(new BeforeSaveEvent(o, dbDoc, collectionName));