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 81522287a..d78fbeab6 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 @@ -23,7 +23,6 @@ import java.math.RoundingMode; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.function.BiPredicate; -import java.util.function.Supplier; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -31,6 +30,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.bson.Document; import org.bson.conversions.Bson; + import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; @@ -1870,21 +1870,21 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, @Override public AggregationResults aggregate(TypedAggregation aggregation, Class outputType) { + + Assert.notNull(aggregation, "Aggregation pipeline must not be null"); return aggregate(aggregation, getCollectionName(aggregation.getInputType()), outputType); } @Override public AggregationResults aggregate(TypedAggregation aggregation, String inputCollectionName, Class outputType) { - - Assert.notNull(aggregation, "Aggregation pipeline must not be null"); - return aggregate(aggregation, inputCollectionName, outputType, null); } @Override public AggregationResults aggregate(Aggregation aggregation, Class inputType, Class outputType) { + Assert.notNull(aggregation, "Aggregation pipeline must not be null"); return aggregate(aggregation, getCollectionName(inputType), outputType, queryOperations.createAggregation(aggregation, inputType).getAggregationOperationContext()); } @@ -1897,19 +1897,20 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, @Override public Stream aggregateStream(TypedAggregation aggregation, String inputCollectionName, Class outputType) { - - Assert.notNull(aggregation, "Aggregation pipeline must not be null"); return aggregateStream(aggregation, inputCollectionName, outputType, null); } @Override public Stream aggregateStream(TypedAggregation aggregation, Class outputType) { + + Assert.notNull(aggregation, "Aggregation pipeline must not be null"); return aggregateStream(aggregation, getCollectionName(aggregation.getInputType()), outputType); } @Override public Stream aggregateStream(Aggregation aggregation, Class inputType, Class outputType) { + Assert.notNull(aggregation, "Aggregation pipeline must not be null"); return aggregateStream(aggregation, getCollectionName(inputType), outputType, queryOperations.createAggregation(aggregation, inputType).getAggregationOperationContext()); } @@ -2056,8 +2057,8 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, protected Stream aggregateStream(Aggregation aggregation, String collectionName, Class outputType, @Nullable AggregationOperationContext context) { - Assert.hasText(collectionName, "Collection name must not be null or empty"); Assert.notNull(aggregation, "Aggregation pipeline must not be null"); + Assert.hasText(collectionName, "Collection name must not be null or empty"); Assert.notNull(outputType, "Output type must not be null"); Assert.isTrue(!aggregation.getOptions().isExplain(), "Can't use explain option with streaming"); diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ReactiveMongoTemplate.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ReactiveMongoTemplate.java index d0102aaee..780eed57c 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ReactiveMongoTemplate.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ReactiveMongoTemplate.java @@ -856,12 +856,13 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati public Flux aggregate(TypedAggregation aggregation, String inputCollectionName, Class outputType) { Assert.notNull(aggregation, "Aggregation pipeline must not be null"); - return doAggregate(aggregation, inputCollectionName, aggregation.getInputType(), outputType); } @Override public Flux aggregate(TypedAggregation aggregation, Class outputType) { + + Assert.notNull(aggregation, "Aggregation pipeline must not be null"); return aggregate(aggregation, getCollectionName(aggregation.getInputType()), outputType); }