From b48ff3c38bdebcc459d85ef77b965b2936814743 Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Mon, 20 May 2019 10:09:26 +0200 Subject: [PATCH] DATAMONGO-2153 - Fix domain type field mapping for change stream aggregations. We now make sure to call the delegate AggregationOperationContext without potentially overriding arguments. Without this change potentially registered target types would be overridden with null. --- ...dDelegatingExpressionAggregationOperationContext.java | 9 +++++++++ .../PrefixingDelegatingAggregationOperationContext.java | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/NestedDelegatingExpressionAggregationOperationContext.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/NestedDelegatingExpressionAggregationOperationContext.java index 056abaffe..3f84da4e4 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/NestedDelegatingExpressionAggregationOperationContext.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/NestedDelegatingExpressionAggregationOperationContext.java @@ -43,6 +43,15 @@ class NestedDelegatingExpressionAggregationOperationContext implements Aggregati this.delegate = referenceContext; } + /* + * (non-Javadoc) + * @see org.springframework.data.mongodb.core.aggregation.AggregationOperationContext#getMappedObject(org.bson.Document) + */ + @Override + public Document getMappedObject(Document document) { + return delegate.getMappedObject(document); + } + /* * (non-Javadoc) * @see org.springframework.data.mongodb.core.aggregation.AggregationOperationContext#getMappedObject(org.bson.Document, java.lang.Class) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/PrefixingDelegatingAggregationOperationContext.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/PrefixingDelegatingAggregationOperationContext.java index d22d507d8..a82673cc9 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/PrefixingDelegatingAggregationOperationContext.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/PrefixingDelegatingAggregationOperationContext.java @@ -55,6 +55,15 @@ public class PrefixingDelegatingAggregationOperationContext implements Aggregati this.blacklist = new HashSet<>(blacklist); } + /* + * (non-Javadoc) + * @see org.springframework.data.mongodb.core.aggregation.AggregationOperationContext#getMappedObject(org.bson.Document) + */ + @Override + public Document getMappedObject(Document document) { + return doPrefix(delegate.getMappedObject(document)); + } + /* * (non-Javadoc) * @see org.springframework.data.mongodb.core.aggregation.AggregationOperationContext#getMappedObject(org.bson.Document, java.lang.Class)