- Notifications
You must be signed in to change notification settings - Fork 698
Closed
Description
Lukas Krecan opened DATACMNS-1461 and commented
I have two classes, ClassB contains @CreatedDate
property and is referenced by ClassA
@Document(collection = "ClassA") public class ClassA { @Id private String id; private ClassB other; } public class ClassB { @CreatedDate private Instant created; }
If I try to store instance of ClassA when other
is null, the auditor fails with following exception:
classARepository.save(new ClassA());
org.springframework.data.mapping.MappingException: Cannot lookup property private ClassB ClassA.other on null intermediate! Original path was: other.created on ClassA. at org.springframework.data.mapping.PersistentPropertyAccessor.setProperty(PersistentPropertyAccessor.java:70) at org.springframework.data.auditing.MappingAuditableBeanWrapperFactory$MappingMetadataAuditableBeanWrapper.lambda$setDateProperty$2(MappingAuditableBeanWrapperFactory.java:243) at java.lang.Iterable.forEach(Iterable.java:75) at org.springframework.data.auditing.MappingAuditableBeanWrapperFactory$MappingMetadataAuditableBeanWrapper.setDateProperty(MappingAuditableBeanWrapperFactory.java:243) at org.springframework.data.auditing.MappingAuditableBeanWrapperFactory$MappingMetadataAuditableBeanWrapper.setCreatedDate(MappingAuditableBeanWrapperFactory.java:189) at org.springframework.data.auditing.AuditingHandler.lambda$touchDate$9(AuditingHandler.java:219) at java.util.Optional.ifPresent(Optional.java:159) at org.springframework.data.auditing.AuditingHandler.touchDate(AuditingHandler.java:219) at org.springframework.data.auditing.AuditingHandler.lambda$touch$0(AuditingHandler.java:166) at java.util.Optional.map(Optional.java:215) at org.springframework.data.auditing.AuditingHandler.touch(AuditingHandler.java:163) at org.springframework.data.auditing.AuditingHandler.markCreated(AuditingHandler.java:131) at org.springframework.data.auditing.IsNewAwareAuditingHandler.markAudited(IsNewAwareAuditingHandler.java:83) at org.springframework.data.mongodb.core.mapping.event.AuditingEventListener.lambda$onApplicationEvent$0(AuditingEventListener.java:54) at org.springframework.data.mongodb.core.mapping.event.MongoMappingEvent.mapSource(MongoMappingEvent.java:90) at org.springframework.data.mongodb.core.mapping.event.AuditingEventListener.onApplicationEvent(AuditingEventListener.java:54) at org.springframework.data.mongodb.core.mapping.event.AuditingEventListener.onApplicationEvent(AuditingEventListener.java:32) at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:398) at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:355) at org.springframework.data.mongodb.core.MongoTemplate.maybeEmitEvent(MongoTemplate.java:2251) at org.springframework.data.mongodb.core.MongoTemplate.doInsert(MongoTemplate.java:1216) at org.springframework.data.mongodb.core.MongoTemplate.insert(MongoTemplate.java:1159)
Affects: 2.2 M1 (Moore), 2.1.3 (Lovelace SR3)
Issue Links:
-
DATACMNS-1438 Annotation based auditing fails for annotation properties underneath collection valued subpath
-
DATACMNS-1671 Auditor attempts to set created date on null object
-
DATACMNS-1609 Auditing metadata should not detect paths containing map or collection like segments
Backported to: 2.1.4 (Lovelace SR4)
0 votes, 5 watchers
Metadata
Metadata
Assignees
Labels
type: bugA general bugA general bug