diff --git a/pom.xml b/pom.xml
index 0e9257f0f0..541bb290e4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-mongodb-parent
- 3.4.0-SNAPSHOT
+ 3.4.0-GH-3968-SNAPSHOT
pom
Spring Data MongoDB
diff --git a/spring-data-mongodb-benchmarks/pom.xml b/spring-data-mongodb-benchmarks/pom.xml
index e2704a6753..9139fce950 100644
--- a/spring-data-mongodb-benchmarks/pom.xml
+++ b/spring-data-mongodb-benchmarks/pom.xml
@@ -7,7 +7,7 @@
org.springframework.data
spring-data-mongodb-parent
- 3.4.0-SNAPSHOT
+ 3.4.0-GH-3968-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb-distribution/pom.xml b/spring-data-mongodb-distribution/pom.xml
index b75f8bf624..ead34082d0 100644
--- a/spring-data-mongodb-distribution/pom.xml
+++ b/spring-data-mongodb-distribution/pom.xml
@@ -14,7 +14,7 @@
org.springframework.data
spring-data-mongodb-parent
- 3.4.0-SNAPSHOT
+ 3.4.0-GH-3968-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb/pom.xml b/spring-data-mongodb/pom.xml
index ca96626cc9..2c4dd41eca 100644
--- a/spring-data-mongodb/pom.xml
+++ b/spring-data-mongodb/pom.xml
@@ -11,7 +11,7 @@
org.springframework.data
spring-data-mongodb-parent
- 3.4.0-SNAPSHOT
+ 3.4.0-GH-3968-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/event/AbstractMongoEventListener.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/event/AbstractMongoEventListener.java
index 1a69f90e35..ed56860faa 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/event/AbstractMongoEventListener.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/event/AbstractMongoEventListener.java
@@ -20,6 +20,7 @@
import org.springframework.context.ApplicationListener;
import org.springframework.core.GenericTypeResolver;
+import org.springframework.data.mongodb.core.query.SerializationUtils;
/**
* Base class to implement domain class specific {@link ApplicationListener}s.
@@ -104,7 +105,7 @@ public void onApplicationEvent(MongoMappingEvent> event) {
public void onBeforeConvert(BeforeConvertEvent event) {
if (LOG.isDebugEnabled()) {
- LOG.debug(String.format("onBeforeConvert(%s)", event.getSource()));
+ LOG.debug(String.format("onBeforeConvert(%s)", SerializationUtils.serializeToJsonSafely(event.getSource())));
}
}
@@ -117,7 +118,7 @@ public void onBeforeConvert(BeforeConvertEvent event) {
public void onBeforeSave(BeforeSaveEvent event) {
if (LOG.isDebugEnabled()) {
- LOG.debug(String.format("onBeforeSave(%s, %s)", event.getSource(), event.getDocument()));
+ LOG.debug(String.format("onBeforeSave(%s, %s)", SerializationUtils.serializeToJsonSafely(event.getSource()), SerializationUtils.serializeToJsonSafely(event.getDocument())));
}
}
@@ -130,7 +131,7 @@ public void onBeforeSave(BeforeSaveEvent event) {
public void onAfterSave(AfterSaveEvent event) {
if (LOG.isDebugEnabled()) {
- LOG.debug(String.format("onAfterSave(%s, %s)", event.getSource(), event.getDocument()));
+ LOG.debug(String.format("onAfterSave(%s, %s)", SerializationUtils.serializeToJsonSafely(event.getSource()), SerializationUtils.serializeToJsonSafely(event.getDocument())));
}
}
@@ -143,7 +144,7 @@ public void onAfterSave(AfterSaveEvent event) {
public void onAfterLoad(AfterLoadEvent event) {
if (LOG.isDebugEnabled()) {
- LOG.debug(String.format("onAfterLoad(%s)", event.getDocument()));
+ LOG.debug(String.format("onAfterLoad(%s)", SerializationUtils.serializeToJsonSafely(event.getDocument())));
}
}
@@ -156,7 +157,7 @@ public void onAfterLoad(AfterLoadEvent event) {
public void onAfterConvert(AfterConvertEvent event) {
if (LOG.isDebugEnabled()) {
- LOG.debug(String.format("onAfterConvert(%s, %s)", event.getDocument(), event.getSource()));
+ LOG.debug(String.format("onAfterConvert(%s, %s)", SerializationUtils.serializeToJsonSafely(event.getDocument()), SerializationUtils.serializeToJsonSafely(event.getSource())));
}
}
@@ -169,7 +170,7 @@ public void onAfterConvert(AfterConvertEvent event) {
public void onAfterDelete(AfterDeleteEvent event) {
if (LOG.isDebugEnabled()) {
- LOG.debug(String.format("onAfterDelete(%s)", event.getDocument()));
+ LOG.debug(String.format("onAfterDelete(%s)", SerializationUtils.serializeToJsonSafely(event.getDocument())));
}
}
@@ -182,7 +183,7 @@ public void onAfterDelete(AfterDeleteEvent event) {
public void onBeforeDelete(BeforeDeleteEvent event) {
if (LOG.isDebugEnabled()) {
- LOG.debug(String.format("onBeforeDelete(%s)", event.getDocument()));
+ LOG.debug(String.format("onBeforeDelete(%s)", SerializationUtils.serializeToJsonSafely(event.getDocument())));
}
}
}
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/AbstractMongoEventListenerUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/AbstractMongoEventListenerUnitTests.java
index f66592d6ee..eec825bffb 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/AbstractMongoEventListenerUnitTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/AbstractMongoEventListenerUnitTests.java
@@ -17,15 +17,18 @@
import static org.assertj.core.api.Assertions.*;
+import java.time.Instant;
+
import org.bson.Document;
import org.junit.jupiter.api.Test;
-
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.data.mongodb.core.mapping.Account;
import org.springframework.data.mongodb.repository.Contact;
import org.springframework.data.mongodb.repository.Person;
+import com.mongodb.BasicDBObject;
+
/**
* Unit tests for {@link AbstractMongoEventListener}.
*
@@ -154,6 +157,14 @@ public void donInvokePersonCallbackForUntypedEvent() {
assertThat(listener.invokedOnBeforeDelete).isFalse();
}
+ @Test // GH-3968
+ public void debugLogShouldNotFailMongoDBCodecError() {
+
+ MongoMappingEvent event = new BeforeConvertEvent<>(new BasicDBObject("date", Instant.now()), "collection-1");
+ UntypedEventListener listener = new UntypedEventListener();
+ listener.onApplicationEvent(event);
+ }
+
class SamplePersonEventListener extends AbstractMongoEventListener {
boolean invokedOnBeforeConvert;
diff --git a/spring-data-mongodb/src/test/resources/logback.xml b/spring-data-mongodb/src/test/resources/logback.xml
index a36841c97c..215d3ffc88 100644
--- a/spring-data-mongodb/src/test/resources/logback.xml
+++ b/spring-data-mongodb/src/test/resources/logback.xml
@@ -12,6 +12,7 @@
-->
+